Interrupt: Need to keep track of time spent in routine or ... ?

... that was the whole point of question. I wanted to keep track of the time spent in interrupt so I could "fix" the millis() value.

I don't quite get what the problem is. You want certain things to happen a fixed time after the start of the movie, right? Regardless of whether or not the fire alarm goes off? This is just straight "do X at time Y" isn't it? You certainly shouldn't need 500 "if" statements. Maybe some sort of table with 500 entries in it. Bear in mind RAM is limited. Lots of things are limited on this processor.

The body of the program is "do X at time Y" but at any moment in time a fault could occur in the hardware. I can't give the specifics of what I'm designing, but there is a pretty realistic chance of having one of the devices (completely isolated from the Arduino) short out. This condition is measured as a voltage drop across a current sense resistor (0.01 ohms, 10 watts). Although the short is current limited by hardware, I want the Arduino to turn off the device that caused the short, wait about 100 ms for a PTC to cool (in the event that it trips - the current limiting should be taken care of via a very simply transistor/instrumentation amplifier arrangement) and then resume the program as though nothing happened (except that the shorted device was not turned on for it's full duration). If the shorted device was left on, I wouldn't be able to turn on any other devices since the voltage goes to 0 during a short.