Could this be built into open source routers? If you wanted to get fancy you could even select the best VPN for the particular service.
You can run the shadowsocks client on some routers and pass selected traffic via your external shadowsocks server.
I haven't needed to do this since I move to the US, but IIRC the rules were based on IP subnets.
The approach in TFA is more sophisticated and fine-grained.
gl.inet routers running OpenWRT do this easily in the newer firmware versions the last few months.
OpenWRT supports PBR which makes this a breeze.