29
Have you tried
AppDomain.CurrentDomain.UnhandledException
This will fire for unhandled exceptions in the given domain no matter what thread they occur on. If your windows service uses multiple AppDomains you'll need to use this value for every domain but most don't.