Saludos a todos, ya encontré muy por encima cuál era el problema.
Efectivamente estoy consciente de que no era la mejor forma de enfrentar el problema, pero como aún no me quería meter con los timers, tenía que trabajar con retardos y al querer que pasar inmediatamente a una función de intermitencia, me veía obligado a quedarme en la interrupción permanentemente hasta que desapareciera el pulso.
Sin embargo, el problema radicaba en que la función de delay escrita en assembler, tenía alguna complicación al utilizarla dentro de la interrupción. Al cambiarla por una función sencilla pero menos exacta, en C, salía de la interrupción perfectamente al desaparecer el pulso en el puerto INT1 que es el mismo RD8.
Ahora el siguiente paso es trabajar con timers para hacer el programa más eficiente y no ponerlo a trabajar 5 horas en una función de interrupción. Pronto deberé abrir otro hilo donde corresponde para preguntar sobre el uso del timer 1 como RTC en el dsPIC30f4013.
Muchas gracias a todos por sus repuestas.