set-time-can (npm): You've tried setTimeout+promises before but have you tried setTimeout+promises on abortsignal? & setInterval too.
Keywords: cancellable|cancelable|abort|abortcontroller|abortsignal|setTimeout|setInterface|async|generator|time|sleep|promises|promisify|stdlib