Tarefa assíncrona está congelando a interface do usuário

Eu tenho um método como este:

private async Task DoSomething()
{
    // long running work here.
}

Quando eu chamo o método assim, ele bloqueia a interface do usuário:

Task t = DoSomething();

Eu tenho que fazer um desses para torná-lo sem bloqueio:

Task t = new Task(() => DoSomething());
t.Start();

// Or

Task t = Task.Factory.StartNew(() => DoSomething());

Então, qual é o ponto de async / esperar quando você pode apenas usar tarefas como eram no quadro 4 e usarTask.Wait() no lugar deawait?

EDIT: Eu entendo todas as suas respostas - mas nenhum realmente abordar o meu último parágrafo. Alguém pode me dar um exemplo de multi-threading baseado em tarefas onde async / wait melhora a legibilidade e / ou o fluxo do programa?

questionAnswers(3)

yourAnswerToTheQuestion