Meine Vermutung :
for(;{}
while(1){}

werden vom Compiler weg-optimiert...

wie wäre es mit:
while(1) asm volatile("nop");

dann NOPed er die ganze Zeit.

Ich hätte ein ähnliches Problem als ich in Assembler programmiert habe...
Als das Programm durchgelaufen ist hat sich mein AVR immer resetted - dadurch führte er das programm immer wieder aus...