I've used something like this in the past & it worked fine:

START:
IF PORTA.1 = 0 THEN WORK 'BUTTON PUSHED
PAUSE 100
LET X = X + 1
IF X > 250 THEN RELAX 'SHUT DOWN AFTER 25 SEC
GOTO START

WORK:
DO WHATEVER
LET X = 0
GOTO START

RELAX:
NAP 0
IF PORTA.1 = 1 THEN RELAX
LET X = 0
GOTO START