Implement enqueuedSignals using a subject of subjects
Don't send completed before finishing error propagation

Without this `finished` flag, an error in the signal could result in
the subscriber of `enqueuedSignals` receiving a completion event,
because the subscriber’s disposable is disposed before the error is
actually forwarded.
Tests for enqueuedSignals