I tend to use escape in most circumstances, but I am increasingly partial to Ctrl-[ when using certain keyboards where the escape key is a bit too far for me. It's another option that's always available by default.
I have found Ctrl-[ to be the best option for a while. I swap Caps Lock and Ctrl since I am most used to Emacs/Readline-style keybindings, and even though I have moved over to Vim-style keybindings for all development I use Ctrl too much for other things to justify swapping Esc and Caps Lock. Ctrl-[ works 99% of the time, and the places it doesn’t work are usually mouse-driven anyway.
I mean your fingers are already there and you're frequently hitting ctrl and hard brackets if you're programming. Just makes sense. <C-[> is the way to go. So many people customize vim in ways where native functionality is easier.