Don't start connecting when already being connected

Adds an endpoint set into the Transport structure
for it to know which connections are being established.
This is because two such connection attempts would
interfere and cause undefined behavior. This is a dirty
fix which still has a bug. I.e. when a connection
fails, it doesn't remove the endpoint from the set
of endpoints indicating "connection in progress"
so every further connection attempt will be blocked.