WaitForSingleObject para el objeto thread no funciona en la descarga de DLL

Me topé con un comportamiento inesperado del mecanismo de subprocesos de Windows cuando se descarga la DLL. Tengo un paquete de objetos de subproceso de trabajo y estoy tratando de terminarlos gentilmente cuando se descarga DLL (a través de DllMain DLL_PROCESS_DETACH). El código es muy simple (envío un evento para finalizar el ciclo de espera del hilo):

WaitForSingleObject( ThrHandle, INFINITE );
CloseHandle( ThrHandle );

Sin embargo, WaitForSingleObject lo cuelga todo. Funciona bien si lo realizo antes de descargar DLL. ¿Cómo se puede solucionar este comportamiento?

Respuestas a la pregunta(1)

Su respuesta a la pregunta