Create an alert dispatcher with cancellation

Unsure if the `gen.Task()` wrapper is required -- don't think it is.