The documentation says that sleep, either Thread.Sleep or lr_sleep, should not be used because while the thread or process is the suspended state there will be no response to abort and therefore clients should use lr_think_time instead.
What is the mechanism of think time? Is it a busy loop?
I would defer an internals question of this type to HP/Mercury support directly as they will be the ultimate source of a correct answer. For anyone who has not been a LoadRunner internals person, anything else is just speculation.
And note, I use sleep() (but not thread.sleep or lr_sleep()) quite often, and have for over a decade without any ill effects.