Não tem certeza de como você pode solucionar isso. Também peço desculpas, não posso comentar. Tente desativar o NetworkManager e use wpa_supplicant e dhclient manualmente. Não execute o wpa_supplicant com o argumento -B para rodar em segundo plano, assim você pode ver o que ele diz quando você se desconecta. Vai ser algo parecido com isto
echo 'wpa_passphrase ssid passphrase' >> /etc/wpa_supplicant.conf
wpa_supplicant -iinterface -c/etc/wpa_supplicant.conf
dhclient wlan0
Agora, quando você desconectar, observe o erro que isso causa. Além disso, verifique o tempo de concessão quando você usa o dhclient.