流石にIOバウンドでの非同期の必要性は理解できてるようだが
CPUバウンドの非同期については理解が足りてない

完全にCPUバウンドの処理AとBがあるとする
Aは終了までに100秒かかる
Bは1ミリ秒でおわる
多数のクライアントがABBBBBBB...とリクエストしたときを頭の中でシミュレーションしてみればはっきりわかる

シングルスレッドかつ完全に非同期だと全てのクライアントがAのせいで100秒待たされる
しかしここでAのアルゴリズムを変更しループ処理を分解して1秒に1回程度の頻度でawaitを挟むとする
するとAは1秒後にCPUを開けわたすのでCPUはAをいったん止めてBの処理を先に進めることができる
Bを実行したクライアントは1秒程度でレスポンスを得ることができるようになる