In theory using events should work at least 99% of the time (excluding when another mod builds something without raising the script_raise_build event) at least for keeping track of ghosts in general, just add ghosts to a list/table/queue when they get build via an event, or upgraded (there is an event for ghost upgrades), and loop trough n entrys of that list, with a check to see if it's still exists is valid (that way you wouldn't have to any of the removed events), remove anything invalid and add everything else back onto the end of the queue anything new also get's added to the end, this is how my mod GhostOnWater checks it's water ghosts.
Of course you still have to use find_entitys_filtered when on init and on settings changed since that clears the global table.
The question for this mod now is how easy it is to check if any given entity is a a specific logistics network, if that's an easy check a single queue/table should be enough to keep track of all the ghosts just check which logistic network they are in when you go over that specific entry, maybe store that in the table as well or somthing. You end up with a table of what ghosts are in what logistic networks and can just use that to update the ghosts scanners. It may not be that easy tough, I don't know how fast or easy it is to check what logistic network a specific entity is in.