There's no "key up" event or IRQ.
The debounce thing though is common with mechanical switches like keyboards use. When the key's released there's a break in contact but sometimes there's a brief moment of contact again sufficient to register a keypress.
The Atari approach to it (you can browse the kb IRQ code and Stage 2 VBlank to see it) is to maintain a countdown whenever a key is pressed.
In the IRQ code, if the received key is the same as the previous one, it's ignored if the previous keypress is the same and occurred less than 3 frames previous.
Your problem of recurring IRQ, I'm not sure. Generally you clear then re-enable IRQEN bits in your IRQ and quickly return.
I'm not sure what action occurs if it's a long duration IRQ. In theory it shouldn't matter so long as you've done that clear/re-enable sequence.
All I can suggest to try is to do the clear/re-enable to IRQEN twice - at the start of the IRQ and also when fire has been pressed and you're about to resume the game.