I certainly think this is an idea worth exploring. We want to make performance footguns more obvious to developers, this may be a good way to help in this case. Note that the choice here is between
scroll-blocks-on and an async event API. touch-action is orthogonal (even with an async event API, you may need to use touch-action to declaratively disable certain gestures since you can no longer use preventDefault for that).
However, one of the use cases scroll-blocks-on was designed to address is where the incentives between components are misaligned and you want some form of "action at a distance". Eg. we know various libraries (ad networks, etc.) attach touch event handlers, when they'd work perfectly fine with async events. They may not be properly incentivized to update their code to switch to async handlers, but the page owner wants scrolling to be fast so we should give them the ability to disable scroll-blocking capability of components they're hosting. Perhaps this is a false use-case though - we can only ever truly fix this sorts of problems through aligning the incentives by fixing our tooling to enable blame attribution.
The other trade off is ease of incremental adoption. I think our guidance would be one of the following:
1) Find all code in your page (including frameworks etc.) that adds 'touch*' event handlers and evaluate whether each can be conditionally replaced with a 'touch*-async' handler when feature detection indicates your browser supports it. Also update all code that consults Event.type to be aware of the -async variants.
-or-
2) Put 'scroll-blocks-on: none' on your document. Test the various uses of touch events and if you find one where scrolling is occurring where you don't want it, apply 'touch-action' to that element to disable the unwanted scrolling (or, less desirably, apply 'scroll-blocks-on: start-touch' to re-enable scroll blocking for that element and it's descendants).
I think #2 is easier to apply incrementally to a large application (and so likely to have a bigger positive impact on real world performance) than #1, but I could be wrong.
Also, just from an optics perspective, if we tell people they need to listen to a new type of event, I'm sure we'll get the typical "Why is Google introducing a 3rd type of input events rather than just embracing pointer events which already solved this problem". Perhaps an API shape like addAsyncEventHandler('touchstart',...) would be better anyway and avoid this concern.
Regarding wheel events. Why does theverge have a wheel listener at all instead of just a scroll event listener? What useful capability does a wheel event offer that a scroll event doesn't if you're not going to call preventDefault to disable scrolling? If there's nothing, then we should be able to argue just as well that people should switch from consuming wheel events to consuming scroll events, rather than introduce an async wheel event.
Rick