#6: Pass errors straight through during EDN and JSON decode; use a bidirectional channel (with write end closed) for passing connect-time errors