Implements ticket #341 for Sprint 3:
- Add DeserializationWithDump and MutexPoisoned variants to BridgeError
- Replace .expect("mutex poisoned") with graceful error propagation
in LocalBridge and TcpBridge (4 locations)
- Log first 256 bytes as hex dump on deserialization failure for
debugging malformed payloads
- Classify errors in receive_bridge_inputs: BrokenPipe/ConnectionReset
→ clean shutdown, MutexPoisoned → shutdown, DeserializationWithDump
→ skip frame (recoverable)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>