Wo kann der Fehler liegen?
Dead-Lock ==> Programm tot.
R.I.P. bis zum nächsten Reset.
So schnarchlangesame Schnittstellen wie Serial mußt Du vom normalen Code aus bedienen.
In den seriellen Ausgangspuffer passen nur 63 Zeichen rein, und wenn Du versuchst, bei blockierten Interrupts innerhalb eines laufenden Interrupts mehr Zeichen reinzuschieben, müssen erst Zeichen gesendet werden, bevor wieder welche in den Ausgangspuffer reinpassen. Es können aber keine gesendet werden, weil während Deiner Interruptverarbeitung alle übrigen Interrupts im System gesperrt sind. Das ist die typische Dead-Lock-Situation mit der Du das Programm effektiv anhältst.