code: @WillNotClose
      public static Optional<InterruptedException> uninterruptibleSleepFor(long timeout, TimeUnit unit) {
          try {
              unit.sleep(timeout);
              return Optional.absent();
          } catch (InterruptedException e) {
              return Optional.of(e);
          }
      }
docs: Uninterruptible sleep of the current thread
  
  <b>WARNING: you must propagate the exception or interrupt the current thread</b>
  
  @param timeout with unit, the maximum length of time that callers are willing to wait
  @param unit with timeout, the maximum length of time that callers are willing to wait
  @return true if was interrupted or false if not
  
  @see TimeUnit#sleep(long)