After a discussion on discord it was discovered that the ReadThread could encounter a Connection Reset Socket exception while trying to connect to a server that is not running.
The expected behaviour here would be to trigger a connectAttempFailed event, but the exception will close the socket and the loop checking for the connection attempts will be terminated early without firing the event.
Thank you for @andreivreja for finding the possible solution.
After a discussion on discord it was discovered that the ReadThread could encounter a Connection Reset Socket exception while trying to connect to a server that is not running.
The expected behaviour here would be to trigger a connectAttempFailed event, but the exception will close the socket and the loop checking for the connection attempts will be terminated early without firing the event.
Thank you for @andreivreja for finding the possible solution.