docs: public OptionalThing<RunnerResult> stopIfNeeds(ReadableJobAttr me, Function<ReadableJobState, String> stateDisp) {
          final OptionalThing<RunnerResult> quitResult = doStopIfNeeds(me, JobConcurrentExec.QUIT, (neighbor, group) -> {
              noticeSilentlyQuit(me, neighbor, stateDisp, group);
              return RunnerResult.asQuitByConcurrent();
          });
          if (quitResult.isPresent()) {
              return quitResult;
          }
          final OptionalThing<RunnerResult> errorResult = doStopIfNeeds(me, JobConcurrentExec.ERROR, (neighbor, group) -> {
              throwJobNeighborConcurrentlyExecutingException(me, neighbor, stateDisp, group);
              return null; // unreachable
          });
          if (quitResult.isPresent()) {
              return errorResult;
          }
          if (waitress != null) {
              // this is not perfect concurrent control, because of no lock
              // so basically used only for cross VM concurrent control
              doStopIfNeeds(me, JobConcurrentExec.WAIT, (neighbor, group) -> {
                  waitress.accept(neighbor);
                  return null; // as empty (converted to empty later)
              });
          }
          // will wait for previous job naturally by synchronization later if waitress is unused
          return OptionalThing.empty();
      }