When exploring how to get the longjmp working on x86/funclets I noticed that the code path going through PropagateLongJmpThroughNativeFrames never switches back from cooperative mode to preemptive one. Presumably it should call GCX_PREEMP_NO_DTOR(); like PropagateForeignExceptionThroughNativeFrames does.