A razão pela qual nmcli não é através do cron é porque os detalhes da VPN (nome de usuário, senha) residem nos detalhes da conta do usuário no chaveiro. E o nmcli exige que o DBus recupere as informações.
Isto é, se você quiser configurar seu sistema para que o nmcli funcione, você precisa que o nmcli trabalhe com o ambiente que o CRON oferece aos scripts.