I like how the `QueueDrain` class abstracts this away. The concern as stated in another comment is the double wrapping of `Action0` and `Notification` we now have.