While cleaning up TLS resources, some destructors might still query for the
thread which is currently being shut down; logging is a very common case.
This patch causes the TLS implementation to use the lock only when the data
has not been created yet, improving performance and fixing that deadlock.