Ошибка с net.sockets
Оказывается этот гнилой C# при вызове disconnect вовсе не отключает сокет а кладет его в режим TIME_WAIT (netstat подсказал) где-то на 2 минуты и только потом отключает.
Как заставить сокет отключаться сразу?
Метод Shutdown перед вызовом Disconnect и не забудь таймауты обнулить перед этими методами.