Snapshot-local overlap candidates, ordered by start time. Each subtree stores
its maximum active end. Removing visited files prunes dense internal overlaps.
PK-disjoint files with overlapping times can still cost O(N) per query, so a
complete closure has O(Nยฒ) worst-case time and O(N) auxiliary space.