Interesting. Just tried another approach, and you can get the behavior by overriding reportException: in a custom NSApplication subclass.
edit: Also I'm not suggesting to just naively exit(1). edit2: Strangely, exception generating code in [[NSOperationQueue mainQueue] addOperationWithBlock:] does actually hit the NSUncaughtExceptionHandler, which was surprising to me.