Ich finde meinen Quelltext leider nicht mehr, aber ich hatte auch einmal einen "Watchdog-Thread" welcher den MainThread alle 500ms mit einer Windows-Message angepingt hat, und wenn er nicht schnell genug eine Antwort bekam hat er den Stack des Hauptthreads ausgelesen und auf die Platte geloggt.
Das können Eurekalog und madExcept beide.