I have used all three. Vim for ~5 years, then kakoune for 2 years, then helix for 2 months, and back to kak for 2 years (with no end in sight). Kakoune is my favorite and helix is very nice, and I would never go back to vim.

Vim:

+ ecosystem is nice. Plugins and matching keybinds in ACE/codemirror/whatever was cool for interop
+ having vi or vim on any Linux box is nice
- you have to have plugins for basic things like pcre, correct colors (csapprox), and ale
- at least when I stopped using vim, the multiple cursors plugin was nothing near as good as the other two. It was tacked on to a single-cursor editor, and you can tell

Hx (my knowledge is 1-2 years old):

+ felt completely natural coming from vim. If you use vim and don't want to warp your brain with new keybinds, try hx. It feels like vim+more. Kak feels like a different editor
+ many built-in features that require plugins in vim/kak
+ using LSP motions felt amazing
+ written in rust, which I love. The codebase is entirely readable and I contributed a patch after only about an hour first looking at it
- hx didn't have motions for ()/<>/... Which I've come to rely on. Kak has m which is like Vim's f(v% if f was multiline
- no advanced keybinds/bindsym in vim/map in kak. Config was toml so the most you could do was bind single chars to other single chars
- no plugin support, though I found myself not really longing for any plugins because so much comes by default
- occasional crashes due to off-by-one errors and .unwraps sprinkled around

Kak:

+ editing feels amazing. Like the text is directly connected to your brain. This is because basically every action gives you feedback. For example, in vim, t(dt) gives you a cursor move and then the text is gone. t(v%d gives you feedback but takes way more keys, but in kak, md immediately selects the entire bracket after m and deletes it after d. Having visual feedback *as a requirement* (not an option like Vim's visual mode) is amazing. I didn't use hx enough to know if it feels like vim or kak in this regard
+ plugins exist. Kak-lsp is nice. Scripting your own keybinds feels more natural because the scripting language *is* the keybinds, contrary to vim. Basically imagine every keybind is like Vim's but with a :normal before it
+ multisel feels compltetly natural. Not like an extension to what you're doing, but everything is multisel, and you just happen to have n=1 selection sometimes
+/- piping to external programs feels very natural. I have numerous scripts that take stdin and write to stout. In kak, I select whatever I want and just run |encode-url<ret> and it pipes every individual selection to my command and replaces them with my output. This is also bad because if I have 100 selections (not uncommon), it will spawn 100 shells to spawn my command 100 times
- people keep saying it doesnt have a scripting language, which is misleading IMO. There are try blocks, %{} groups, and commands that you need to learn about. Look at hx if you're interesting in no scripting language. It reads a toml config file and that's it.
- a little overreliance on shell. I don't even know if windows can run kak because it uses shell so much. On one hand it's nice because I know Shell. On the other hand, interop feels weird. You echo commands and kak reads your stdout and evaluates it. It's clever and cool, but something about it feels weird.
- keybinds don't behavibe like vim or hx. You have to retrain your muscle memory, but IMO it's worth it. Using vim now though is painful

Kak is great