The GuestOperationsReady property tells you that GuestOperations are ready.
From then on you can for example use Invoke-VMScript.
To check if all Updates are installed, I would check via the CreateUpdateSearcher.
Run the following at intervals, till the count is zero.
$updateSearcher = $updateObject.CreateUpdateSearcher()
$searchResults = $updateSearcher.Search("IsInstalled=0")
Write-Host $searchResults.Updates.Count
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference