Here's one approach:
(defun isearch-exit-mark-match ()
"Exit isearch and mark the current match."
(interactive)
(isearch-exit)
(push-mark isearch-other-end)
(activate-mark))
(binddefine-key isearch-mode-map (kbd "<C-return>") #'isearch-exit-mark-match isearch-mode-map)
This binds a different key (C-return) to exit the current isearch and also leave the last match selected. This will work with isearch-forward-regexp
as well, which is handy.