I made it work in nvim 0.10.3 by keeping imsearch always set while toggling spelllang and keymap as desired:
func! LangEn()
setl spelllang=en keymap=en
return ''
endfunc
autocmd BufEnter * setl iminsert=1 imsearch=1
cnoremap <C-F1> <C-R>=LangEn()<CR>