Use an early_quit function for shutting down when we have not successfully initialised that does not try to clean up.
Rework the pool fail to connect at startup to not get stuck indefinitely repeatedly probing pools with new threads and to exit immediately when any key is pressed.