I wanted to follow up and close the loop on this one. First, my original hypothesis was wrong. the reason why this script would hang was because due to the following pause while command - “pause while {Not exists value “DisplayVersion” whose (it as string as version = “16.0.8431.2215” ) of keys whose (value “DisplayName” of it as string as lowercase contains “365”) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of native registry}”. In most cases the machines update shortly after the command is run. In other cases the script can be stuck on pause for up to a week. The solution to this was incorporating a timeout setting after the pause. That way the computer is not paused indefinitely. I learned this method from other BigFix champions “Pause while”-command results in failed action in this forum. Here is the script with a timeout. - parameter “start” = “{now}”
pause while {(Not exists value “DisplayVersion” whose (it as string as version = "16.0.xxxxxxxxxxxx of keys whose (value “DisplayName” of it as string as lowercase contains “365”) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of native registry) AND (now - ((parameter “start” of action) as time))< 30*minute}
I hope this is helpful to someone.