Просто ну даже самый тупой человек сделал бы какие-то выводы и попытался бы создать условия, при которых у него не было бы проблем, которые он имел прежде
самое смешное - это то, что он пытается сделать то, что уже есть и работает в JS и .net. Там асинхронщина работает по подобным мотивам. В JS планировщик на одном потоке, а в .net, как я понимаю, тред пулл для асинхронного делается под капотом