Duda con lectura y escritura en el puerto serie

Hola soy nuevo en esto, y estaba probando un poco como funciona el tema del puerto serie en Arduino. Haciendo unos programillas tontos de pruebas, hice este, y no entiendo el resultado que me devuelve el puerto serie.

Tras la ejecución del código que pongo a continuación e introduciendo por ejemplo 5 carácteres de golpe en el puerto serie, el código en el serial monitor me devuelve todo el tiempo "Pendientes = 1".
Sin embargo si ejecuto el código sin el bucle WHILE, si que ocurre lo que yo esperaba que pasase, que es que sucesivamente va restando uno a la variable pendientes hasta que lee todos los carácteres, es decir:
"Pendientes = 4"
"Pendientes = 3"
"Pendientes = 2"
"Pendientes = 1"
"Pendientes = 0"

Supongo que será una chorrada de pregunta, pero si alguien me lo puede explicar se agradeceria!
Un saludo

char buffer[10];
int pendientes;
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  pendientes=Serial.available();
  while (pendientes>0)
  {
  Serial.print("Pendientes = ");
  Serial.println(pendientes);
  delay(2000);
  Serial.readBytes(buffer,1);
  }

}