An awaitable construct for signalling shutdown to supervised processes
to complete work and exit on the next available await point
Lazily instantiates the future when the future is first polled to allow cloning the underlying
token and propagating shutdown signals from a single source in a one-to-many relationship