Heist das sie so klein wie Möglich sein müssen. Den sonst Warten ja die anderen oder ? gehen vieleicht welche verloren ?
Bei allen Punkten 100% - Genau so ist es.
Interruptroutinen sollten so kurz wie nur irgend möglich sein.
Ausserdem sollte man in Interrupts nicht auf irgendetwas warten - z.B. eine Änderung eines Eingangspins - da dadurch die komplette Programmabarbeitung ins stocken kommt und auch keine weiteren Interrupts ausgeführt werden können.
Interrupt Anfragen laufen bei den AVR Controllern über Flags.
Tritt ein Interrupt auf wird das entsprechende Flag gesetzt.
Befindet sich der Controller gerade in einer Interruptroutine oder das I - Flag im Statusregister ( siehe Assembler CLI Befehl ) ist 0 wird so lange gewartet bis der Controller die Abarbeitung eines Interruptes zulässt.

Treten in dieser Zeit mehrere Interrupts auf, werden diese nach ihrer Priorität ( Platz in der Interruptvektortabelle ) abgearbeitet.
Tritt bei einem aktiven Interruptflag ein weiterer Interupt der selben Instanz auf, wird die Interruptroutine nur 1x ausgeführt, also 1 Interrupt verschluckt.
Die Interruptflags werde übrigens nach Ausführung der dazugehörigen Interruptroutine automatisch gelöscht.
Man kann aber ein aktives Interruptflag auch manuell per Programmcode löschen - Das musste man des öfteren schon mal bei den alten AT90S... Controllern machen, die nach der Initialisierung mancher Instanzen auch selbstständig gleich das zugehörige Interrupt Flag gesetzt haben.