La serpiente c # de la consola se atasca con una pulsación larga de tecla

Acabo de empezar a aprender programación hace un par de meses y decidí hacer un juego de consola de serpientes. Todo funciona muy bien, por una cosa.

Si mi serpiente va hacia arriba y presiono la flecha hacia abajoy manténgalo presionadoMi serpiente se detiene y permanece parada incluso un rato después de que deje de presionar el botón.

Lo mismo sucede si mi serpiente va hacia la derecha y presiono la flecha hacia la derecha demasiado tiempo, pierdo el control por algún tiempo (pero la serpiente no se detiene). Sucede en todos los sentidos (izquierda, derecha, arriba, abajo).

Intenté comparar el cki con otro ConsoleKeyInfo con un ligero retraso entre ellos, pero no importa. Si mantengo la tecla presionada, mi programa solo permanece en ese lugar y se actualiza para una tecla. (Al menos creo que ese es el problema)

¿Es esta una "característica" de la Console.ReadKey o hay alguna forma de esto?

Ten en cuenta que acabo de empezar, así que todavía no sé nada sobre las cosas avanzadas.

Todo funciona a la perfección mientras no mantenga presionada la tecla durante más de 1 segundo.

   public void LiikutaMato() //movesnake
    {

        if (Console.KeyAvailable)
        {
                ConsoleKeyInfo cki;
                cki = Console.ReadKey(true); // <-- I believe this is where it gets stuck 

    }