Two issues causing ~2min reconnect cycles:
1. pymumble captures threading.current_thread() as parent_thread at
init. Since we construct it in a run_in_executor thread, the parent
dies after _connect_sync returns, triggering pymumble's loop exit.
Fix: point parent_thread at threading.main_thread().
2. pymumble's init_connection() drops the control_socket reference
without closing it. The lingering TCP connection makes Murmur kick
the new session with "connected from another device". Fix: patch
init_connection to close the old socket before reconnecting.