Interrupts and timers

but if my loop lasts for a very long time

There is no reason, generally, that that should be the case.