improve disk read semantics around MustExist and AllowMissing (#99249)
Ensure two concurrent reads of a missing task both observe it as
missing: `AllowMissing` returns `None` for both, and `MustExist` panics
for both, rather than letting one reader mistake an intermediate blank
entry for a task. A missing requested Data or Meta key is conclusive;
the restore path also avoids retrying that key in a busy loop.
Add focused coverage for `task_pair`, `prepare_tasks`, missing
categories, and restore races. Stacked on #99383, which removes
suspended-operation serialization; this PR no longer filters persisted
operations.
<!-- fleet e2b0931e-5002-47b5-b5e1-3a96fbc88cab -->
---------
Co-authored-by: vercel-fleet-prod[bot] <318278635+vercel-fleet-prod[bot]@users.noreply.github.com>
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>