I'd say everything you described is true of vim as well, especially nowadays with LSP and tree-sitter and async capabilities in plugins. The plugin ecosystem is thriving. Neovim's lua api makes it even easier to develop plugins.
It does take a fair bit of configuration if you want to start from scratch, but there's also distributions (such as LazyVim [1]) which make it trivial to start from an editor basically as fully featured as VScode.
Of course, there's still the learning curve for a modal editor, but that's the whole point of using vim. I assume there are vi-style plugins for VScode, but then you're missing out on performance.