fix(message_bus): prevent socket leak on connection error
In the `_setup_socket` method, if an exception occurred during the connection attempt, the underlying socket file descriptor was not being closed.
This commit refactors the socket connection logic to ensure that if an error is present after trying all available bus addresses, the socket is explicitly closed before the connection error is raised.