We have 10 slave nodes and each slave has 8 executors.
We have 3 categories and maximum Concurrent Builds Per Node = 1 for each category.
Each category is used for each project group (A, B, C)
The plugin should choose free nodes (all executors are free) first to build if there is at least one free node.
Because if we run many builds on the same node, it's slow to access I/O.
It seems that Jenkins selects any node that has free executors, even we have a free node.
If Group A is building on node 1, group B should choose a free node if it has.
Group B should not choose node 1 even there are free executors.
If this request is valid, I can send a pull request to merge this support.