Maybe a nicer solution would be to return this disconnection_lock and lets dispersy wait for that deferred, instead of forcing all other endpoint to "call" this deferred.