Better address authentication failures

- Make sure session is accessed from socketQueue
- Check if session is authenticated after authentication, since result doesn't indicate this
- Get error string from session when there are errors, wrap in underlying description