docs: public OptionalThing<RunnerResult> stopIfNeeds(ReadableJobState jobState, Supplier<String> stateDisp) {
          if (jobExecutingDeterminer.test(jobState)) {
              final JobConcurrentExec concurrentExec = jobState.getConcurrentExec();
              if (concurrentExec.equals(JobConcurrentExec.QUIT)) {
                  noticeSilentlyQuit(jobState, stateDisp);
                  return OptionalThing.of(RunnerResult.asQuitByConcurrent());
              } else if (concurrentExec.equals(JobConcurrentExec.ERROR)) {
                  throwJobConcurrentlyExecutingException(jobState, stateDisp);
              } else if (concurrentExec.equals(JobConcurrentExec.WAIT)) {
                  if (waitress != null) {
                      // this is not perfect concurrent control, because of no lock
                      // so basically used only for cross VM concurrent control
                      waitress.accept(jobState);
                  }
              }
          }
          // will wait for previous job naturally by synchronization later if waitress is unused
          return OptionalThing.empty();
      }