Fix watcher stop failing when watcher object is null but isWatching is true
- Backend was checking 'this.watcher && this.isWatching' causing stop to fail
- When watcher object was null but status showed isWatching=true, stop returned error
- Now checks isWatching first and handles missing watcher object gracefully
- Always sets isWatching=false and clears watcher reference when stopping
- Prevents inconsistent state between watcher object and isWatching flag