then we must check for transformer.isComplete after transformer.onNext, which is horrible:

      emits = transformer.onNext(e)
      if (transformer.isComplete) {
        emits ++= transformer.onTermination(errorEvent)
        emitAndThen(completedPhase)
      } else emitAndThen(running)