The current script2 will not profit a lot from running Update-Tools with RunAsync.
The reason is that you run through the VMs one-by-one.
You could consider taking the VMware Tools update out of that loop and then run that step for all VMs with the RunAsync parameter after the loop.
Is that an option ?