You could consider using the Start-Job cmdlet to introduce parallelism in the script.
See
for how it could be done.
There is another method as described by Vitali in Waiting for OS customization to complete.
It's based on the Events that a customization of a VM will produce.