MonitorScheduler tweaks

- Remove monitors when they return false.
- Use a set for monitors.
- Synchronize internally.