Port js/web/fetch/fetch-stream-cancel-leak.test.ts from the copied Bun corpus.
Required behavior:
- resolve fetch once an incomplete chunked response has headers and a readable chunk without waiting for connection close
- make reader.cancel() and body.cancel() detach the client stream from the open keep-alive transport
- release the fetch stream lifecycle root idempotently so canceled bodies become collectible
- provide structured phase, endpoint, reason/cause, and composed stack data for cancellation lifecycle failures
- add a permanent focused regression and advance corpus position 4143 with zero failures or unsupported tests
Tracked under #66.