Just posted an article on the NTDebugging blog about ICorDebugUnmanagedCallback::DebugEvent.

http://blogs.msdn.com/b/ntdebugging/archive/2011/11/29/fixing-an-icordebugunmanagedcallback-induced-hang.aspx