Well, I just tested with the semisynchronous sample in MSDN, and it appears to work fine:

$oSvc = GetObject("winmgmts:root\cimv2")
$oInstSet = $oSvc.ExecQuery("SELECT Name FROM Win32_Process",,48)

For Each $oInst in $oInstSet
? "Process: " + $oInst.name
Next

Let me know if this code works for you as well, and/or if you see any difference with your own script.

Kind regards,

Ruud