[macOS] Handle GC safepoint on-thread
Also configure mach exception handler as `EXCEPTION_STATE_IDENTITY`
This allows the kernel to deliver the thread state directly in the
exception message and will make our signal handlers somewhat easier
to chain.
Almost entirely written by Claude, with some direction from me.