Even if you do get it to work, you usually have to wait for the keypress timeout to detect the command. The sequence is something like:
- Enter insert mode.
- Press "j"
- Nothing appears until 40 ms later, when keypress timeout passes and the logic falls back to insert a "j" character.
I think Vim and Emacs use a fancier undo-mechanism, where they always insert the "j" and then delete the "j" if a command completes before the timeout in order to hide the latency.
inoremap jk <esc>
I just did an experiment, if I type "j" and pause, I can see "j" appearing and then almost immediately disappears, slight pause and then appear again. Is that the problem you are facing? But if I type fast (e.g "joking"), it doesn't seem to cause a visible delay.