GUIアプリだとWPFとかがメッセージループ回してくれる

コンソールアプリだとメッセージループがないからそもそもの土台が違うだけでしょ
GUI周りの制限とかもないだろうし

もしかしたらメッセージループを自前で回せばasyncとかのデッドロックをコンソールアプリからもできるかもしれん