What is the maximum length an Interrupt Service Routine?
As already explained by jwpat7, interrupts are, by default, not
interruptible. Thus, if another interrupt fires while your ISR is
running, it will no be serviced until your ISR completes. This delay you
impose on other interrupts is called latency. So your question boils
down to “how much latency can the other interrupts tolerate”.

There is no simple answer: it all depends on the timing requirements
of whatever those interrupts are servicing. For example:


The millis() counter is updated by interrupts. Any latency longer
than 1024&nbsp;µs (on the Uno) can make it loose tics.
If you are using the serial port to receive data, a latency longer
than one byte time (1040&nbsp;µs at 9600&nbsp;pbs, less at higher baud
rates) will make you loose data.
If you are using the Servo library, any interrupt latency will
create jitter in the drive signal, and at some point this may become
visible as mechanical jitter.


Then, if you really need a precise answer, you will have to check the
timing requirements of every piece of hardware and every library you
are using. And then check the latency already imposed by the ISRs in
those libraries, as your latency can come in top of that.

If your program relies on loop() looping fast enough, you should also
keep in mind that interrupts also slow that.