if I read the OP right I think what they want is something  kind of like this:

ideally to get "printer status events" in their application so that they can then react to changes in the current status of a printer.

polling wmi with a background worker is one way.....

I have had mixed results with some of the wmi calls.

I forget at the moment but some things in WMI are not very good, some are ok but some things are not well implemented.