I found that the best way to achieve split tunneling is to use vpn-slice. You basically can tell which routes you want and it will be your vpn script that does the routing, instead of what the configuration the server provides:
openconnect --script 'vpn-slice 10.0.0.0/16' -b vpngateway.example.com
Although by default it doesn't override your dns server to the one provided by the server, rather you have to manually list all domains and it would resolve and add them to your hosts file:
openconnect --script 'vpn-slice 10.0.0.0/16 host1' -b vpngateway.example.com