That's a bit of a tricky problem because right now provisioning won't attempt to contact the core server. If it tries once and fails, it's done. If you're absolutely sure that the reason for the failure is the disconnection, and not any kind of non-zero exit code or something along those lines I'd try and put it in a batch file or script of some type (AutoIt, vbscript, etc.) and put about a 30 or so second delay after the VPN is installed.
This can't be done by just adding a wait command to the provisioning template because the behavior it will follow is:
Contact core, get VPN install instructions
Install VPN stuff
Lose connectivity momentarily
Attempt to report back to core and get next instructions/return result of current task
We'd never get the wait command. Also, a lot of this behavior is streamlined a bit in 9.0, with more improvements on the horizon.