Adding some more recent experiences, to show impact for game devs.
It seems that doing micro transactions in game does require an overlay and there is no auto fallback.
When you initiate a transaction via a request from your purchase server to the steam servers (after a client request), the steam app on the client side opens an overlay for transaction approval. If no overlay support, so far I have found that a fallback method does not appear. So, the transaction cannot be completed.
The non fall back work around is to have a fully separate web site that you send the user to do the purchases and do a separate process to authorize it. It takes you a bit out of the game experience, and friction for purchasing can certainly create a hit to game income. To make it a little better, you may be able to use an iframe, but you have less control over rendering and UI in that case.
Note that for mac, I have not yet seen an overlay working on any browser based framework. So, that would require a web based work around. The saving grace here is that Mac (and Linux) are generally a very small part of the market (in terms of user demographics.)
If I find out other workarounds for overlay or other aspects as I continue work. I will post them.
(Also I am following the webview2 to texture to D3D issue/feature request, which could help. Ashley, I know you are already familiar with this.)
An idea for windows overlay though.
Without overlay on, display webview2 window, only. When the overlay is on, use the slower preview capture API of webview2 and use that as texture to write to a D3D window that is now enabled, the overlay can display on top of that and the alpha should be ok, since they mixing on the same surface. Since overlay is on, the webview2 display does not need to be full realtime, so a more slowly updated display could be ok. After overlay disable d3d window and show webview2.
Here is a gist that seems to support the slower capture method (have not tried it myself yet):
gist.github.com/pabloko/5b5bfb71ac52d20dfad714c666a0c428