This may double-notify the child in case a predicate returned false in onNext, breaking the event semantics.
In the previous version the if check on status.get() was correct as in case it was set to false, it means a previous onNext call was already sent out the false value and completion signal.