Problemi con Serial e Stringheeee !!!

Esiste un buffer di ricezione, è un array in cui vengono memorizzati i caratteri man mano che arrivano dalla seriale.
Serial.available() restituisce i caratteri presenti e Serial.read() estrae il primo disponibile.
Mettiamo che stiano arrivando 2 caratteri, se tu ne prelevi uno e leggi subito dopo lo stato del buffer prima che arrivi il 2°, sicuramente il buffer lo troverai vuoto ed il ciclo uscirà. Aumentando la velocità di spedizione, forse riesci a far arrivare entrambi i caratteri prima che venga letta la disponibilità dopo il prelevamento del 1°.

Sono test che devi condurre. Prova a mettere 57600 (sia su trasmettitore che su Arduino) e guarda un po'.