Yes.. It is getting complicated... But the next step is probably a penguin sitting in the DMZ. 
If you're thinking something like Openswan, dd-wrt is probably the better answer, IMO.
Once you get a decent handle on it, you could make some bucks setting it up for people as a service. It's rock solid (I've never had a blip in several years), and with a little simple scripting you could give customers a utility to fix things if they mess them up.