Acquire worker lease per test worker, not per test class
This reverts a change that put the worker lease around the processTestClass call. That change had two negative effects:
- it was no longer protecting the actual work in the test worker, but only the "work" of sending the test class over (which is cheap)
- it acquired and released a worker lease for every test class, leading to lots of contention with other threads waiting on that lock
The original change was made in response to a deadlock which was probably caused by something else.
The test cases are still all passing and the large performance test project that used to show the deadlock is no longer having that problem.