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

Can the problem be stated another way?

Have a routine that is triggered by the interrupt.

When triggered it sets a "no output" flag for a time. After the time expires reset the flag. (I assume this is being called
multiple times in loop(), so it can check the time)

Have a common output function like:

void output_for_one_device(int device address, boolean no_output)
{
if (no_output)
{
set_output_safe();
return;
}
// otherwise, carry on and do the output

}

Do you really mean interrupt - an interrupt is for a hardware signal that you have to respond to very fast.
From your problem description, why not have a digital input for your interruption, and when you poll that
change your output variable? From my measurements on arduino code, the loop() repeats 20000 times a second,
so you can poll a digital input that fast. Interrupt routines are tricky.