Preventing touchend during scroll if a user is still touching their screen

Browsers have a nasty habit of turning a long-press into a context menu trigger, with the sequence of events being to first end the current touch event(s), and then triggering a context menu event.

Not showing the context menu is trivial (intercept the event, then kill it off), but not having the browser end touch input prematurely seems to be impossible to find information on.

Which is a problem in situations where the touch event is stationary for a while (i.e. the user isn’t moving their finger) while JS scrolls the page in search for a viable touchend region (e.g. by using window.scrollBy), which is rather necessary when the user needs to touch-move something to a part of the page that’s outside of the current viewport, and the viewport edges act as “hot regions” for scrolling purposes.

Is there a way to inform the browser that it is not allowed to cancel a touch event unless the user actually takes their finger off the screen?