"pulseIn()" bremst Ablauf genau so wie "delay()"

PulseIn und ein Interupt sind zwei verschiedene Paar Schuhe.
Oder hast du gemeint er soll den pulseIn Befehl in der Interupt-Routine starten?
Das ginge, wenn man genau wüsste, wie viele millis() der Aufruf der ISR dauert, damit man die eigentliche PulsIn-Messung korrigieren kann.