When we are shutting down, the ShutdownSubscription will initially
wake us up from a sleep, then will always be immediately signalled
for the rest of the lifetime of the program.
Since we use it being signalled as a wakeup, it will effectively
cause a busy loop where we never sleep the ready queue while
we wait for the queue to wrap up.
Avoid that by ignoring the ShutdownSubscription once we realize
that we are shutting down.
A similar situation can occur with refreshing the configuration;
when shutting down, we can simply ignore that.