I've no technical concerns about the implementation, but I think we'd be better off following the pattern established by the original Returns/ReturnsLazily methods, where Returns defers to ReturnsLazily. It simplifies the implementation a little, reducing duplication of complicated `Task`y logic. Also, patterns help people understand things.