Currently a connect must finish before a disconnect can start. Otherwise, disconnect blocks forever. Bug found by @cheng--zhang