the workaround is to track mode changes, as following:
:autocmd ModeChanged *:ni[IRV] let g:restart_edit = v:event.new_mode[2] :autocmd InsertEnter * let g:restart_edit = ''