Setting up the VPN is easy, but NM fails at something I used to have scripts doing: getting name service set properly.
I *used* to run a caching named with forwarding servers defined for the internal nameservers on remote networks. The scripts would set the reference to the server and reconfig named.
To do the same thing on NetworkManager I'd have to write a plugin. Considering the state of other NM plugins, the NM authors have zero concern for API compatibility and therefore I'd also have to rewrite the code every six months or so.