ENG-7019: Fix Race Condition in Stream Snapshot Watchdog

Ideally, the data structure used to track outstanding work can be replaced, but that introduces more changes. This change set has lower risk. It is potentially back portable to 3.x releases.

Jenkins is still running tests, don't merge yet.
Do you need this synchronized when run() is synchronized?