¿Cuándo comienza realmente una tarea de C #?

¿Cuándo comienza realmente una tarea?

public void DoSomething() {
    Task myTask = DoSomethingAsync();

    Task.WaitAll(new[] { myTask }, 2000);
}

public async Task DoSomethingAsync() {
    await SomethingElse();
}

¿Comienza inmediatamente al inicializarlo enTask myTask = DoSomethingAsync(); o comienza cuando dices que esperes enTask.WaitAll(new[] { myTask }, 2000); ?

Respuestas a la pregunta(1)

Su respuesta a la pregunta