In the helper for TThread::Join wait for the helper thread to be finished too.

Otherwise, we run the risk that the helper thread will still be running and using global resources
even after the main thread has finished and started to unload libraries (including the thread library)
Avoid (re)init the thread library during its unload.

And avoid accessing the thread library (for example during a stray thread's CleanUp routines) after
it has been unloaded.