mmmhhh.
In einer Uart-Receive ISR Routine ist das mindestens überflüssig
loop_until_bit_is_set(UCSRA, RXC);
du wirst ja aufgerufen WEIL ein Zeichen da ist.

Sind die Zeichen, die du kriegst, überhaupt alle druckbar ? binäre Zeichen < 32 treiben ein Terminal in den Wahnsinn
(bei 0x07 z.B. piepst er )