The old code implicitly set any sockets into non-blocking mode,
and since there is no way to probe a socket to determine its
blocking status using the win32 API, this was a real pain in the ass.
The New implementation will hand off any sockets to winsock and
use the WaitForObject API in win32 to probe other types of handle.