stop(force = false) {
        if (this.isRunning && !force) {
            // stop on the next tick
            this.stopSentinel = true;
        } else {