Your interrupt code CANNOT afford to loop. You have to exit the interrupt for the next one to be recognized. For this, you need to have all your interrupt code exiting via the INT_RETURN statement. You may use a flag to decide whether you got the first switch press or the second and accordingly allow your processing function.

This is what I would think your code should be doing.

Code:
On switch press interrupt, do switch press ISR code
main:
   If AllowSustain then
         gosub DoSustainCode  ' if AllowSustain says, do it!!!
   endif
   goto main

SwitchPressISR:
   ' toggle the AllowSustain (bit) flag everytime the switch is pressed
   if AllowSustain then
      AllowSustain = 0
   else
      AllowSustain = 1
   endif
@ INT_RETURN                    ' always return from the interrupt