Well, I got sufficiently annoyed by this that I made a WordPress plug-in that deals with the transformation either on the back-end (if your server software is sufficiently up to date) or on the front-end (using the WebAssembly port of libheic that you mention). Bonkers! Experimental! But it works (for me, ha!)
https://github.com/sole/wp-reliably-heic
Thank you for the write-up. It really helped me to get started on what options were there! Cheers 🙂