SSE completion signaling: when should a stream emit done vs error?