в таком случаи ты выбрал не тот язык
В таком случае ты не видишь дальше своего носа.
А представь, что мы из асинхронного кода породим не поток, а процесс)
Тогда шедулер Операционной системы сам поселит его на ядро и сбалансирует по нагрузке)
А в асинхронке у тебя будет только io корутина, которая будет смотреть на pipe процесса) Ни блокировок, ни потоков, и максимально доступные ресурсы для процесса (ведь это отдельный процесс)