Ты не должен этим заниматься. Потоки не должны Sleep (), если они сами не решат, что это хорошая идея.
В любом случае это не относится к вашей проблеме. Ваша проблема, очевидно, в том, что потоки управления не запускаются из-за нехватки ресурсов процессора. Чтобы это исправить, достаточно дать этим потокам более высокий приоритет. В конце каждого временного интервала ОС будет определять, какие потоки должны запускаться дальше. Приоритет потока несколько динамичен: потоки, которые не запускались некоторое время, будут перемещаться вверх по сравнению с только что запущенным потоком Но более высокий приоритет базовых потоков для ваших потоков управления будет означать, что им не нужно это динамическое повышение для планирования.
Если этого по-прежнему недостаточно, уменьшите приоритет рабочих потоков. Это будет означать, что рабочий поток должен бездействовать еще больше времени, прежде чем он получит новый временной интервал.
Наконец, убедитесь, что поток, запускающий новые рабочие потоки, работает с очень низким приоритетом. Это будет означать, что новые потоки не создаются, если система выходит за пределы загрузки ЦП. Это реализует простой, но надежный механизм регулирования.