Have you tried the Vintageous plugin? I'd be interested to know if it's any better.
{ "keys": ["j", "j"], "command": "set_action", "args": {"action": "vi_esc"}, "context": [{"key": "vi_must_change_mode"}, {"key": "vi_is_buffer"}, {"key": "vi_mode_insert"}] },
{ "keys": [";"], "command": "vi_colon_input", "context": [{"key": "setting.command_mode"}, {"key": "vi_enable_cmdline_mode"}] },
is the reason why I still use Vim. i[nore]map jj <Esc>
n[nore]map ; :