Почему в DLL_PROCESS_DETACH некорректно отрабатывает WaitForSingleObject?
Из справки по DllMain:Because DLL notifications are serialized, entry-point functions should not attempt to communicate with other threads or processes. Deadlocks may occur as a result.
При вызове DLLMain вызывается системная критическая секция, которая так же используется в таких функциях как: WaitForSingleObject и других. Заменил WaitForSingleObject на самописную - всё заработало!