Still a work in progress
further simplification
needs to be checking a different method
more simplification and bug fix
killComputer interrupts executors, so no need to do it separately
improving error reporting
killComputer only interrupts idle threads
if an executor is interrupted before it's started, just throw it away
Experiment revealed that a thread's interrupt flag cannot be set before it's started:

The following code prints false.

    public static void main(String[] args) {
        Thread t = new Thread() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().isInterrupted());
            }
        };
        t.interrupt();
        t.start();
    }
this method needs no synchronization
added @Terminator as the opposite of @Initializer
parked can be a local variable now
fixing a test failure
added another Executor-related utility class
When the executor is finished, rerun the queue maintenane to allocate more tasks
A Trigger timer thread is used for many things, so its execution can delay significantly.

Use our own queue
added a convenience class
wait for the start of a build more properly
fixing tets flakines
Fixing more test flakiness