Never messed with the inspection API, but shouldn't you be registering for
INSPECT_READY()? Inspections are throttled at the server end, which might explain why you get it once, followed by
nil values.
I'd even cache units and compare if you have them already before you call
InspectUnit().