anchor.diff:    List<Transition> transitions, {
     bool debug = false,
     bool logging = true,
  -  Duration expectedMaxDuration = const Duration(seconds: 25), // must be less than test timeout of 30 seconds!
  +  Duration expectedMaxDuration = const Duration(minutes: 10), // must be less than test timeout of 15 minutes!
   }) async {
     final Stopwatch clock = Stopwatch()..start();
     final Process process = await processManager.start(
  
positive.code:   if (debug) {
      processTimeout();
    } else {
      timeout = Timer(expectedMaxDuration ~/ 2, processTimeout);
    }
    process.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(processStdout);
    process.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(processStderr);
    unawaited(process.exitCode.timeout(expectedMaxDuration, onTimeout: () {
      print('${stamp()} (process is not quitting, trying to send a "q" just in case that helps)');
      print('(a functional test should never reach this point)');
      final LogLine inLog = LogLine('stdin', stamp(), 'q');
  
negative.code:       }
        nextTransition += 1;
        timeout?.cancel();
        timeout = Timer(expectedMaxDuration ~/ 5, processTimeout); // This is not a failure timeout, just when to start logging verbosely to help debugging.
      }
    }
    void processStderr(String line) {
  