OC1A wird ausgelöst, wenn der Summensignal Ausgang auf Low ist.
Fast richtig. Der OC1A wird bei jeder gewünschten Änderung des Ausgangssignales aufgerufen.
Also bei L->H Wechsel ebenso wie beim H->L Wechsel.
Das Kriterium welcher Teil der Interruptroutine aufgerufen wird, wird aus dem PINB.0 gewonnen. Man könnte hier ebenso den PORTB.0 abfragen.

...wird er auf High geschaltet und dann wird OC1A = Timer1 + Pulslenge festgelegt...
minus der Länge die die kurze Pause zwischen 2 Impulsen haben soll!


Sobald dann die neue Pulslenge erreicht ist, wird die ISR erneut gestartet, aber da der Summensignal Ausgang auf High ist, wird OC1A = Timer1 + 300 festgelegt um die 0,3ms pause festzulegen.
Im nächsten OC1A Interrupt wird dann die Pause abgearbeitet.
Es wird hier nicht auf irgendein Ereignis gewartet, sonst gibts Probleme.
Auf irgendein Ereignis in einer Interruptroutine zu warten ist ein absolutes NO GO!!!