I am looking at Windows test failures in PreCancellationCrossVersionSpec that started after your introduction of CyclicBarrierHttpServer fixture and can't find what is wrong here.
I can reproduce it locally and the problem is that the URI of our HTTPServer is accessed twice in failing tests (I see CyclicBarrierHttpServer.handleConnection() called twice during one test run). It means that our first server.release() doesn't release the task execution processing as we expect. The test fails for all Gradle 1.x versions for me so I suspect Groovy can do something different but it passes sometimes on our TC.
Any ideas what to look for? I probably need to find out why there are two connections to that server URI (retry handler, some eager evaluation, ...)