it doesn't seem to me like this really solves the problem, if we assume the attacker has control of the relay that was sent the channel inits, maybe i'm missing something?
also, the channel state has to be stored by both ends somehow, or it only works, like simplex, per client key