> you might be better off just offloading that optimized synchronous op to a worker thread (or to wasm) to not block the UI.
It works in principle, but note that this really complicates your build process. In particular, if you're writing a library that other people will use as a dependency, there's really no good way to use workers at all without affecting how people bundle their code using your library.