Sockets melden Ereignisse über Windows Messages; da es bei Konsolenanwendungen keine Message Loop gibt wäre es denkbar, dass dies ein Problem darstellt.
Und wie funktioniert dann telnet.exe?

Windows Sockets können Windows Messages versenden (
WSAAsyncSelect), müssen aber nicht.
Und Konsolenanwendungen können ein unsichtbares Window + einen Thread erzeugen um die Messages zu empfangen und abzuarbeiten.
Wie das in telnet.exe läuft, weiss ich nicht aber es ein Aspekt der bei asynchronen Sockets beachtet werden sollte.