Make `Context._status` the single store for outcome, cancellation
and handshake state. Migrate internal callers and existing test
assertions directly, without descriptors or duplicate fields.
Keep policy and live resources on `Context`.
Deats,
- Add shallow-frozen fault metadata in `ContextCancelReason`,
delivered via Trio's public cancellation reason API. Preserve
the first cancelling fault when the recorded error changes.
- Distinguish local transport/protocol faults from boxed remote
failures; type-check self-cancel acknowledgements before reading
remote-error metadata.
- Move `._final_result_is_set()` onto `ContextStatus` and migrate
its five production callers plus the existing stream assertion.
- Retain the human's `._scope_tn` rename and add status-only reprs.
Keep public APIs, including the deprecated `.result()` wrapper.
New status regression tests follow in their own commit.
Prompt-IO: ai/prompt-io/opencode/20260919_context_fault_status.md
(this patch was generated in some part by `opencode`
using `gpt-6-astra` (`openai`))