- Don't send FSwitchboardStatePacket to clients until after they authenticate successfully.
- Made some calls to Future.set_exception thread-safe.
- Exposed authenticated status to outside code, so that nDisplay Monitor doesn't try to poll sync status until after we auth.
- Moved some cleanup code to _loop_threadproc, which could otherwise result in a half-connected client. Additionally handle exceptions besides ConnectionError.
- Don't run asyncio loop in debug mode to cut down on log spam.
#jira UE-200427
#rb jason.walter
#rnx
[CL 31590819 by zach brockway in ue5-main branch]