La escritura en la consola usando Task.Run () falla

Un colega mío encontró un problema con nuestro código y tardó un tiempo en descubrir exactamente lo que estaba sucediendo, pero esto se puede demostrar mejor con este simple ejemplo:

// Fails
class Program
{
    static void Main(string[] args)
    {
        Task.Run(() => Console.WriteLine("Hello World"));
        Console.ReadKey();
    }
}

// Works fine
class Program
{
    static void Main(string[] args)
    {
        Console.Write(String.Empty);
        Task.Run(() => Console.WriteLine("Hello World"));
        Console.ReadKey();
    }
}

Está claro que, al jugar con esto, la escritura en la consola desde cualquier parte del hilo principal permitirá que la secuencia de fondo también escriba en la consola, pero estamos luchando para entender por qué sucede esto. ¿Alguien puede explicar qué escritura en la consola desde el hilo principal logra que el primer fragmento no lo haga?

Respuestas a la pregunta(2)

Su respuesta a la pregunta