Esperando asíncrono / espera dentro de una tarea

Tengo esta construcción en mimain(), que crea

var tasks = new List<Task>();

var t = Task.Factory.StartNew(
    async () =>
    {
        Foo.Fim();
        await Foo.DoBar();
    });

//DoBar not completed
t.Wait();
//Foo.Fim() done, Foo.DoBar should be but isn't

Sin embargo, cuando yo.Wait para t, no esperará la llamada aDoBar() completar. ¿Cómo consigo que realmente espere?

Respuestas a la pregunta(3)

Su respuesta a la pregunta