Review findings on the monitor-triggered walks:
- reset_gallery_roots_cache now retires every listing record: its pending
timer is cancelled, dirty is cleared, and no mark, timer or trailing walk
starts a walk of it until a reader or the warm-up asks for that root
again. Before, a timer or trailing walk pending when the roots changed
stored a listing for the removed root, and the monitor (which watches the
old roots until restart) kept it walking on every new output.
- A walk task cancelled outside cleanup_gallery_listings no longer starts a
trailing walk while the loop shuts down.
- root_contains ignores a Windows extended-length prefix (\\?\ and
\\?\UNC\) on either side, which realpath can keep on a file past MAX_PATH.
- The REWALK comment states the ~20% GIL share only for walks up to 3 s.