Про агрегацию и наследование.
Например, поток делает периодически какие-то действия. Делает, ждёт, делает ...
Так вот, ждать лучше всего sleep'ом. А он защищенный у потока. Так что приходиться наследоваться.
Верно подмечено. Когда функция потока реализует блокирующее поведение (например, сокеты блокирующие и т.п.), sleep находит применение. В такой реализации никакого эвентлупа нет.