There’s other things that annoy me like typing latency, apt taking forever to run, an awful terminal emulator with basically no customization, copy and paste often just does not work. It’s really so frustrating.
You absolutely can, I do it all the time. For example, you shift-click your desktop, click "Open Linux shell here" and run imagemagick or ffmpeg to your heart's content.
You can alias subl to your Windows sublime install and then subl ~/whatever will work as expected.
I don't experience any of your other problems. Apt is very quick, copy and paste works fine, typing latency seems lower than Linux (but I do have a 144hz G-sync monitor). I agree that Windows Terminal is a bit spartan, but I was never one for excessive terminal customisation on Linux either so it doesn't really bother me, I guess.
The reason I prefer it to MacOS is that it is actually a real Linux kernel with all the trimmings - such as apt, docker, eBPF etc. My recent experience on MacOS is that every update seems to break Brew, which, while better than MacPorts, doesn't even work all that well to begin with. MacOS is a weird BSD with poorly documented closed source system components such as launchd. If that's your thing, it's fine - but I personally find the Mac/BSD userspace unpleasant to work with and am tired of fighting against it every time Apple decide to break my attempts to make it more tolerable.
Versus a VM it's less clear, but the integration is actually fairly good, each of your WSL2 "distros" start instantly, you can launch them to the current directory in Explorer or use them from Windows Terminal without SSHing. For the most part, it _feels_ like Ubuntu is just a part of Windows.
My workflow with WSL2 is that I keep most of my repos in the Windows desktop and use Windows versions of JetBrains' IDEs or VSCode for most of my work, but then I use WSL for docker/kubernetes, running CLI-oriented things like vim, ffmpeg, imagemagick, shell scripts, python, terraform, etc.
Plus, I have a Ryzen 5950X with 128GB memory, which isn't strictly a limitation of MacOS, but it certainly makes my life a lot better!
There are a few edge cases that are tricky (for instance you can’t register a batch script in WSL2 as a file association handler) but for the most part it’s pretty smooth.