Prefetch without priority starves the next visible request in a FIFO worker
A viewer sent prefetch requests (neighbouring screens, a zoomed-out level) only when nothing visible was pending. The requests carried no priority flag, so the single-worker backend ran them FIFO. The next visible request (a pan) then waited behind all of them: ~8.7 s on a large dump, against ~1.4 s with no prefetch. The zoomed-out prefetch cost the most, because cold reads scaled with the time span. A helper-level replay with timestamped worker logs (task, queue length, run time) found it quickly. Also check what the benchmark's 'done' means: here the bench waited for 'nothing in flight', so prefetch drain counted as pan time. Fix direction: mark prefetch on the wire, queue it below visible work in the backend, and cancel it when it's superseded.