The real issue here is that a sure kill, terminatethread(), has all kinds of warnings on it about bad effects of its use. I have been using this method to exit an recv(). The windows docs says "you must know what the thread is doing before applying terminatethread", well, we know what it is doing, its in recv(). The question is not what the THREAD is doing, its what windows kernel is doing.
In the embedded system RTOSes I have done killthread() is doable. Its not EASY, you have to find every single lock and resource owned by the thread and back it out. Only the OS has that kind of information (and power).