e0ad90bcd9
P2: Darwin IN iso responses accepted malformed RET_SUBMIT descriptors — aggregate ActualLength was checked but per-descriptor Offset/Length were not, and ScatterIsoResponse silently clamped bad values into apparent success. ValidateIsoResponse now lives in iso_scheduler.go beside EncodeIsoSubmit/RebaseFrame and enforces the single-packet shape (Offset == 0, Length == requestLen, ActualLength <= Length, sum == header, payload covers range). pendingTransfer.validateResponse routes every RET_SUBMIT shape check through one named seam so future defects land in one place, and ScatterIsoResponse drops its defensive clamps so the data-movement primitive can no longer mask a validation gap. P2: kernelHandoffSession.Close mutated h.conn/h.monitorFile/h.relayConn outside stateAccess while Start reads them under that lock; the server registers prepared sessions before Start, so Close-before-Start can race the direct-TCP path during import-time shutdown. Close now snapshots and nils the three fields under stateAccess before closing the locals via closeOnce, restoring symmetry with Start's under-lock reads and matching the copy-under-lock, close-outside idiom established by exportLedger.CloseAllSubscribers and ServerService.Close.