The first rule of PowerShell is to install the "real" PowerShell [1] instead of using the one bundled with Windows (which is out of date and importantly doesn't interoperate as well with non-PowerShell commands). I still don't like it, it's way too different from UNIX shells, but at least it's usable.
CMD hasn't gotten any improvements since like 1995 but it isn't going anywhere either. If you need something vaguely like a UNIX shell and that's always available, it's not a bad choice.
WSL2 is fine if you work mostly within its environment, which is made easier by things like VSCode's Remote extension. However, accessing Windows files from within WSL2 is surprisingly slow, so you really want to commit to it if you start using it.
I'm doing Rust on Windows too and apart from installing the MSVC tools and a compatible version of libclang, and occasionally figuring out how to write PowerShell, it's not been too much trouble. WinGet is pretty good and the library has quite a large selection of development tools.
[1]: https://learn.microsoft.com/en-us/powershell/scripting/insta...