I looked at your code:
the checkRoboports() goes through the list with the roboports.
after the validaty checks it will order 10% of the available robots to place the concrete. But this will lead to an overload:
20 Roboports(= 20 Iterations), 10 Available Robots:
In the iteration it will at least order 1 robot.
1st Iteration 1 robot, 2nd iteration 1 robot,...
It will order 20 Robots, but only 10 are available
I dont know but i exspect that the roboports logistic network id should be accesable. So you could identify all diffrent Networks put their id with the respective available roboports to a list.
Then you could count the robots you order to place tiles, when available robot count it reached no more orders are added to that network.