I believe when you grant Private Browsing access and it restarts the add-on, it’s treated as an update, not a new install. So I think it’s that you’ve restricted the installation handler to trigger only on an install, not an update
I’ve only glanced at your code, but I think an issue you are going to run into is that Firefox alarms are not persistent between sessions. So if you close Firefox, those alarms are gone. They have to be recreated when you open Firefox again.
This has the benefit of not leaving behind expired alarms. Chrome leaves those alarms behind and they will be executed as soon as the browser opens, if they were supposed to have already been executed.