Petri's PartialSuccess now carries Option<UnderlyingFailure>, which is
Failure(FailureInfo) or TimedOut, so a partial success converted from a
timeout keeps the timeout (lithoscomputer/petri#51). The projection's
failure message reads the new shape: the info's message for a failure,
"the step timed out" for a timeout, as for the plain statuses.
Lock the Petri crates at the PR head ded1df4, which also moves Petri's
run format to 8; the attach snapshot records it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>