> Представим код, который пытается отдать управление с помощью слов await/yield в многопоточном коде.
про твой случай с йелдами двух потоков из двух потоков. 100% загрузка цпу безусловно, это вообще классический случай неправильного понимания шедулера. правильно было бы сказать шедулеру "я посплю немного", если уж ты так хочешь отдать управление, или отдать управление ивент-лупу, если ты хочешь подождать и/о, таймера или другого сигнала.
но если уж ты хотел сказать, что никакая стейт-машина не может просто взять и заснуть, то я уже приводил контр-аргумент, что процессор и есть стейт-машина.
в былые времена у процессоров была инструкция "хальт!", но сейчас количество возможный п-стейтов больше одного. как бы то ни было, это как раз способ остановиться и подождать внешнего прерывания, именно так шедулер может не кушать 100% цпу, когда две его единственные таски решили обе одновременно поспать без ивентлупа