Hallo CapSob,
die For-Schleife ist ja in einer Interrupt Routine, da kannst du nicht unterbrechen. Erst wenn die beim return angekommen ist, werden andere Interrupts betrachtet.
Da du Config Int0 = Low Level angegeben hast, schätze ich mal, dass das Programm nach Beendigung des ersten Interrupts sofort wieder in die gleiche ISR springt, weil du so schnell gar nicht die Taste loslassen kannst. Warum machst du das, wenn du dann eh 3s warten willst?

Gruß

Rolf