To add to Reed's good answer, think about it this way:
Func<int, int> GetFunc()
{
Func<int, int> f = GetFunc(someParameter);
Should you say
return f;
or reason "I'm supposed to be returning a func here, so let's make a lambda that calls the func I have in hand":
return (int i) => f(i);
I hope you would do the former; you already have a Func<int, int>
in hand, so just return it. Don't make a func that calls a func.
If you had
IEnumerable<int> GetSequence()
{
IEnumerable<int> sequence = GetSequence(someParameter);
would you say
return sequence;
or
foreach(int item in sequence) yield return item;
? Again, I hope you would do the former. You have a sequence in hand, so why go to all the trouble of making a new sequence that enumerates the old one?
The same goes for tasks; just like you can make a delegate that wraps another delegate and a sequence that wraps another sequence, you can make a task that wraps another task, but why would you? It's just a waste of resources.