>>非同期メソッドを呼んで戻ってきてるのは戻り値を戻す処理を実行してるTask<TResult>であって、
ここと
>>その時点で戻り値が渡されている訳ではないよ。
ここのつながりがよくわからないのです
1行目でTask<TResult>型の戻り値が戻ってますよね
それなのに戻り値が渡されていないというのはどういうことでしょうか

あとiscompletedプロパティで終了しているかを判断するのは一般的ではないのですか?