A parte que lê a entrada do usuário do terminal precisa ser executada em primeiro plano. Na maioria das configurações, sudo precisa ser executado em primeiro plano.
Chame sudo no script inteiro. Chamar sudo separadamente para executar comandos sucessivos não faz muito sentido.
Supondo que openconnect não leia a entrada do usuário, altere Script para
VPNUSER=Rilcon42
VPNGRP=01
VPNURL=https://remote.someserver.edu
VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script
sudo -b sh -c '
openvpn --mktun --dev tun1 &&
ifconfig tun1 up && {
/usr/sbin/openconnect -s "$1" "$2" --user="$3" --authgroup="$4" --interface=tun1
ifconfig tun1 down
}
' "$VPNSCRIPT" "$VPNURL" "$VPNUSER" "$VPNGRP"
e execute Script1 em primeiro plano, mas somente depois que a VPN estiver conectada (o que pode ser irritante de detectar - talvez fazendo ping no terminal remoto até que apareça).
Eu não estou familiarizado com o openconnect, então estou supondo o que ele faz. Se openconnect requer entrada do usuário do terminal e bloqueia até que a VPN seja desconectada, a execução em segundo plano não funcionará. Mas se é assim que funciona, provavelmente tem uma opção para entrar em segundo plano depois de ler a senha.