I do agree with lot's of notes made above. It looks like `last-pb-context-exited` is a way to go for `stop` events. As of `start` events it's really hard for me to see how that would be useful for add-on. Assuming that old add-on used old API on start event they would stop storing any data in private mode, with this change they will stop storing data even if there is any window in private browsing is present. Which I'm not sure makes sense, specially since without opt-in windows in private mode won't even exist (at least from the add-on perspective). Which would lead to very funny behavior once private window is created add-on will stop storing data.

Now if we just stop emitting start events behavior of old add-on will be a lot more saner. They will never new that private window exist and there for will never store data for private windows.

This also brings up relevance of `stop` events if there is no start no much point in stop. I have a feeling that we'll be better off just not emitting these events if `nsIPrivateBrowsingService` is not present. 

Also we should log deprecation warnings if listeners for `start` / `stop` events are registered.