Ладно, если кому-то интересно, то проблема там следующая...
"The only case when both do (nearly) the same thing is in the main() function, as a return from main performs an exit()."
Получается после завершения мейна вызывается DLL_PROCESS_DETACH и на тот момент потоков уже не существует из-за того, что exit() вызывает ExitProcess() API -
https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-exitprocess"As documented in ExitProcess documentation, it terminates all threads and then calls DllMain() with DLL_PROCESS_DETACH."