I quite sure I understand the question.
If you’re trying to manage what side effects come from what observable, but you’re merging them all together, you would use a do operator at the end of each observable to be merged to handle each observables side effects.
If you’re talking about having multiple sources decide whether or not to unsubscribe from your observable, you would simply have several observables merge together that you would then pass into the takeUntil.
I hope that makes sense.
Also apologies for not noticing this question sooner.