- `GetThreadDescription()`: since there may be concurrent `SetThreadDescription()`
invocations being executed, we need to loop over the buffer allocation size until
we can successfully capture the thread name.
Also, we can directly re-use the temporary buffer, after resizing, for
the output description buffer.
- `SetThreadDescription()`: Use `RtlInitUnicodeStringEx()` instead of reimplementing
its internal logic.