The first handshake occurred before setting the Deadline, which could cause an unintended hang.
Did some manual tests in the playground, such as kicking off two clients in parallel, first connecting, second one getting a message about already being connected, falling back to the second address.