Adding a reserved-queue will increase CPU cost (one queue per roboport).
[ As reminder: You already increased it a bit because you use the “go to next roboport in my direction”-algorithm instead of “go into direction of my target”, we have discussed that out. Now again a bit more. And this is not where it will end in the end, I predict more such “exceptions”, when we dig deeper.
BTW this is what I call a clear sign of increased complexity

Instead I would say from the moment, where their charge goes below 20% the bots should behave like the old bots: Searching (again) for the “next” roboport where they can charge.