A proposition stemming from a PR review.
There we noticed that using existing java.util.concurrent.Future has its limitations when trying to perform soft and hard (interrupt) cancellations.
Having a safepoint-aware executor service (and custom Futures for jobs) could potentially simplify the logic of 2-step cancellations.