OK, here is an idea how to solve it. instead of starting and stopping the server by t/TEST delegate it to a specially designed tests. So the last test in t/pre-start/ will start the server and the first test in t/post-stop/ will stop the server. Both can be autogenerated. Of course this will mess up with the ability to run a single test with t/TEST, but we can instruct t/TEST to start the server if it doesn't see t/pre-start/ in the list of tests, and stop it if it doesn't see t/post-stop/ in the list of tests.
that's the route that I have started in on (in varying forms). it's sorta working out, but it doesn't really seem to be a clean route - among other things I need to freeze all the options and essentially build a new (fake) TestRun object within the start and stop tests. we'll see how it goes, but I think it will work out better as a subclass of Apache::TestHarness rather than altering the underlying code.
anyway, I should have something tomorrow.
--Geoff