Use a set of disposables, and dispose on completed/error
Dispose of subscriptions when subscribers terminate
Test subscriber disposal