¿Cuál es la diferencia entre Task.Start / Wait y Async / Await?

Puede que me falte algo, pero ¿cuál es la diferencia entre hacer: public void MyMethod() { Task t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComplete(); } public async void MyMethod() { var result = Task.Factory.StartNew(DoSomethingThatTakesTime); await...