I wouldn't pause and loop until the button is released within the interrupt.

I'd set a flag and handle it back in main logic.

Robert