fixed concurrency bugs - need to synchronize every part of the disconnect process