I highly recommend using tmux. It works well with the MS terminal (and other terminals).
You'll get forward and reverse searching, split panes, windows (similar to tabs), excellent window and pane management binds (moving them, switching orders, zooming in / out, etc.), persisted sessions that you can save and restore across reboots and good mouse support if you want it.
The best part is it works the same with every terminal so you can super charge any terminal and use the same tmux configuration in multiple environments. This way you can make a terminal choice based on optimizing for speed, low key press latency and other traits that make a terminal feel nice to use.
I gave a command line talk once that focuses on using tmux, Vim and various Unix tools at https://github.com/nickjj/nyhackr-cli-dev-env. The slides and video links are listed there. The videos all have timestamps so you can jump around to the tmux bits pretty easily.
Clink [https://mridgers.github.io/clink/] adds this functionality and much more to good old fashioned command prompt (which I prefer to powershell because it's much faster and simpler)
One simple one: If I start multiple Kopies/file downloads, Windows will run them all in parallel, even if they run through the same connection. So if after 50% there´s a connection drop, all of them will abort. This used to be especially bad on nicely defragmented disks, because the extra seeking makes parallel copies slower then sequential ones.
Even after all this time, they can`t figure out to automatically chain I/O operations (or at least give me some UI to do it explicitly).
I used to use PSFzf indeed: it's pretty good and got me started with fzf on PS, but the history reading nor file scanning are particularly fast so currently I'm using some C# code to do those and pipe it into fzf directly. Don't recall exactly but the most basic C# code I could come up with which does 'read history file in reverse and skip duplicates' was like 3 times faster than what PSFzf uses.