Is the inventory::stock field an indexed number field or an unstored calculation field?
So slight change here... I grossly oversimplified that actual "Inventory::Stock" field. It's actually a "Products::QtyInventoryTotal" field, which is an unstored calculation which is simply "Sum( Inventory::Qty. Fed Out)".
Wherein the "Inventory::Qty. Fed Out" field is also an unstored calculation. This probably helps explain why the original query I proposed takes so long to process.
Hopefully that doesn't too overly complicate the situation.
The fact that it's an unstored calculation field is what makes it so slow. There's no index in place for the find to use to produce quick results.
If you can put a number field in place that is updated with each inventory transaction that modifies the inventory total for a given product, you then have a number field that can be used in this find to produce far faster results.
A less complex solution--but also slower would be to perform a find for the "high priority" records, then return to find mode, specify the inventory level and then constrain the found set instead of performing a find. This limits the unstored calculation field evaluations to just those records that are High Priority.