Make handshake & handling happen in same goroutine for proper blocking.
Fix conflict