When a connected worker's gRPC stream ends, the host must clean up gracefully. Reconnecting workers get a fresh channel (stateless — new `workerId`). **Dependencies**: M4 (#11647) ### Acceptance Criteria - [ ] `FunctionRpcService` publishes `WorkerErrorEvent` when external worker stream ends - [ ] `WorkerConnectionService` removes channel from `IConnectedWorkerChannelManager` on disconnect - [ ] In-flight invocations are drained before channel removal - [ ] `HostJsonContentProvider.Reset(clearCache: true)` called on worker disconnect - [ ] Reconnecting worker with new `workerId` gets a fresh `ConnectedWorkerChannel` - [ ] Unit tests for disconnect + reconnect scenarios