[test] Cover cache sharing after handler failures (#100519)
The existing handler-error tests cover error reporting and rendering
after a failed write. The new tests also cover intra-request lookup
retries and a joiner that needs a different root key after the
producer's write fails.
A held write verifies that the retried calls can consume the same
generated value before persistence finishes. The root-param case
verifies that the joiner persists and reuses its own value. Both cases
pass before the wrapper rewrite in #100511.