This is becoming very interesting. This MSDN topic describes what I believe is the current behavior of the console control handlers. In this article, regarding the event handler returning "True" as it does in win32.c it says, "no other handler functions are called and the system terminates the process." I could find no definitive documentation of the "10 second" process timeout I described. However, this discussion on StackOverflow leads me to believe it is real.
This behavior has changed over the years. This article provides a good description of how things worked at one point. Notice that there is no mention of threads at all. It seems that a change to the behavior of control handlers occurred beginning with Windows Vista (with Windows 7 apparently adding the previously mentioned 10 second timeout).
|Comment on Re^2: The implementation of SIGHUP in Win32 Perl|