プロセスにフォアグラウンドスレッドが存在しなくなると
バックグラウンドスレッドがまだ処理中でもプロセスは終了してしまう
これが原因ではないか

Taskは内部でスレッドプールを使っているが
スレッドプールのスレッドは全てバックグラウンドスレッドだ
フォアグラウンドスレッドが欲しいなら、自分でThreadを作成するべきだ

以下参考資料
https://msdn.microsoft.com/ja-jp/library/h339syd0%28v=vs.110%29.aspx
https://msdn.microsoft.com/ja-jp/library/0ka9477y(v=vs.110).aspx