This is a known issue at the moment - conhost has a timer for specifically blinking the cursor, but there's no such timer in the Terminal currently.
I don't _think_ this would be terribly difficult for someone to dig their hands into.
If someone wanted to implement this, they'd need to set up some sort of timer in UWP (not sure how to do that) in the TermControl class. That timer would then call methods on the Cursor object of the Terminal's TextBuffer which control the blink visibility. This is either SetIsOn or SetVisible, I can't recall ATM.
I have a blinking cursor working. Right now it just blinks all the time, but it should probably stop in certain circumstances, such as when typing, moving the cursor or unfocusing the window. Am I missing anything?
Edit: The PowerShell and cmd hosts seem to have different behaviour, and I can't figure out what the PowerShell host is doing (it seems to blink the cursor really fast when a key is held down?)
I've implemented the following behavior:
Any other edge cases to cover?
Edit: The PowerShell and cmd hosts seem to have different behaviour, and I can't figure out what the PowerShell host is doing (it seems to blink the cursor really fast when a key is held down?)
Both powershell and cmd should have the same behaviour as they share the same host: conhost. That said, powershell is managed code and cmd is native, so you're probably seeing more jitter and flickering due to the overhead of CLR interop.
Here's a comparison between cmd, PowerShell and Windows Terminal, rapidly pressing k and then holding down j. Powershell's behaviour still seems pretty strange, but then again most people don't pay attention to cursor blinkage as much as I have been in the past few hours.

Anyway, I'm going to clean up a bit and make a PR.
Throwing my 2 pence in, the cursor should not blink, but remain visible when a key is being held down and text is being entered into the console. It would prevent a user typing in whilst the timer controlling the visibility is currently set to hidden.
This is how it works now. When you type, the timer gets reset and the cursor is visible.
I'm on Windows 10.19041, Terminal Preview 1.4.2652.0. I have a weird issue where the cursor blinks in PowerShell and cmd but not in WSL (Ubuntu 18.04 WSL2), once I've opened and closed neovim. Since there is a possibility that this might be a config issue I did not want to open a new issue, has anyone else experienced this and/or managed to fix it? It appears in zsh, sh and bash; with and without tmux attached.
Edit: After some googling, I realised neovim sets the cursor and does not change it back when leaving. You can either turn on the blinking cursor within neovim or reset the blinking while leaving
Most helpful comment
This is a known issue at the moment - conhost has a timer for specifically blinking the cursor, but there's no such timer in the Terminal currently.
I don't _think_ this would be terribly difficult for someone to dig their hands into.
If someone wanted to implement this, they'd need to set up some sort of timer in UWP (not sure how to do that) in the
TermControlclass. That timer would then call methods on theCursorobject of theTerminal'sTextBufferwhich control the blink visibility. This is eitherSetIsOnorSetVisible, I can't recall ATM.