I haven't touched BLE in a while, so maybe I don't understand exactly what you're looking for. But I think it can be done by having the devices change their advertising data to indicate that they need service. The background service could listen (passively, no scan needed) to advertising data and only after it sees that a device needs to be updated, connect to it and do the update.
Putting "live" data into the advertising packet used to be a way for BLE fitness devices to be active in a Group Fitness environment where scanning and connecting to 30+ devices is not feasible. I think that BLE 5 has a better way of doing that now.