It appears as though my attempts to catch all exceptions were correct. Catching the AppDomain.CurrentDomain.UnhandledException
was getting triggered on these crashes. My initial attempt to pop up a message box was flawed. It crashed today after I made changes to log to a file on the user's desktop instead and the error was properly reported.
Incase anyone is curious on the crash -- it appears that I am running out GDI resources due to a third party control. An out of memory exception is being thrown, at random times when a control is initialized. In the case of the error I caught today, it blew up on the constructor of the standard TextBox when opening a form. This coincides with the very small GDI leak I found when running a memory profiler.