Also die Interrupt-Routine reagiert nur auf die negative Flanke. Bleibt das Signal statisch passiert erst mal gar nichts.
Aber die Zeile:
if sens then gosub reset
würde ich auf jeden Fall durch
if sens = on then gosub reset
ersetzen. Das ist wohl sicherer und die einzigste Möglichkeit für die Sprünge. Eine andere Möglichkeit wäre ein fremdes Signal das den Interrupt-Pin dauernd sehr schnell auslöst. Solltest das Signal einmal messen und mit einem Schmitt-Trigger vorschalten. Dann dürfte es funktionieren.

Grüsse Wolfgang