There are events in the NetworkingManager for you to use. However, there is no way to extract why the connection failed as most transports do not support this feature.
Yup I just made a basic code that detects when the client SHOULD timeout (obv match the value with what you set in the transport) and then if the client is disconnected (theres a callback for this) check when they were disconnected, before the timeout or after
if it was before the timeout, we can chalk it to the wrong password
if it was after the timeout, then it was due to no connection or taking too long to respond