Allows other connected users to take over as host if host disconnects,
as well as ensuring catches for all cases of termination and graceful
exits