I've checked again. The issue I referred to affected the watchdog timer (which you are not using since you are using interrupts to wake the device) so you can ignore my comment. ProMini: Reboot loop when using watchdog · Issue #150 · arduino/ArduinoCore-avr · GitHub
In the mean time, you have declared all the variables that are set in the ISR and used elsewhere in your script ( timers etc. ) as volatile ?