Bueno, ceo que lo que pretendes el el sueño del pibe, se llama ejecucion paralela, je je, pero ni el mismo pentium 4 todavia puede hacer esto pero a travez de la interrupciones muchos sistemas operativos no hacen creer que mastican chicle y caminan a la vez, y se valen de este importante recurso que es desperdiciado por muchos que utilizan microntroladores, y asi se complican haciendo pollings sobre entradas gastando memoria y haciendo mas lerdo el proceso que manejan teniendo que migrar a microcontroladores mas grandes, por lo que veo tu problema puede solucionarse utilizando la interrupcion generada por los timers y la del pin RB0 presente en casi todos los dispositivos 16C/FXX de Microchip o si tienes muchos perifericos los 4 pines del puerto B (RB4:RB7) , entones lo que haces es dentro de un loop realizar la rutina que tarda 5 segundos y cuando se habilita un pin determinado habiltas la interrupcion del timer y dentro de ella ejecutas tu otra rutina, claro que tendras que ver de que manera lo ordenas para que cuando entres en la interrupcion del timer para corregir el tiempo que esta tarde si es que los tiempos de tu proceso son criticos, si la rutina que ejecutas dentro de la interrupcion del timer no es grande por ahi no tiene importancia, pero si no deberas restar los ciclos que consuma mientras este activa la interrupcion para corregir el tiempo de la rutina principal, bueno si me explicas un poco mas de tu proyecto puedo seguro ayudarte, lo que si no programo en picbasic estoy estudiandolo, trabajo en ASM y C de CCS.
un saludo

ARIEL / PIKMAN