Eu encontrei a solução para o problema.
Eu removi todos os comandos individuais do sudo no meu script vpnon.sh e passei o sudo de fora do script.
No meu arquivo /etc/init.d/vpnstartup, alterei o su username -c
para sudo $VPN_DIR/vpnon.sh
que se parece com isso agora:
case "" in
start)
sudo $VPN_DIR/vpnon.sh
;;
então chamado sudo update-rc.d vpnstartup defaults
e agora a VPN se conecta na inicialização! :)