Make TakeUntil obey Rx contract

`TakeUntil` didn't synchronize messages from different Observables.