First I should say that job resource limits is a great idea. Too bad it is broken when using an agent group. The fundamental problem is that jobs are pre assigned to agents before they can run. With the pre assigned agent if resources are freed up on another agent the job will not run on the agent with the free resources.
Simple example V10 SP1:
An agent group with two agents chh-awdna-tst03 and chh-awdna-tst4 both agents have a resource limit of 20. Run 3 jobs with a resource limit of 15 each. The first two jobs run and the third one waits for resources
The problem is seen below. TESTJOB3 is still waiting for resources on chh-awdna-tst4 when it should start running on chh-awdna-tst3 which is now free. The second part of this problem is you cannot manually move the job to the other agent. The rich client doesn’t give an option to cancel the job when waiting for resources. This is a UI bug and is scheduled to be fixed.