Result/error envelopes coming back. A stream error means the executor itself died (crash, not task failure).
@override Stream<Envelope> get messages => _messages.stream;