I don't think this'll fix stuff, because foundMatchingRule will still end up false and the alerts will still get triggered. We should bail out and not do anything if the leader generation is wrongy.

Also the startingLeaderGen should be set upon commencing running of the runnables, since if not then we still have a race here. The runnables could start in general, leadership could switch off/on, then this particular runnable could run and it won't realize it is actually part of an aborted leadership run.