I map caps-lock to escape on short press, caps-lock to ctrl when pressed with another key, and both shifts to caps-lock when pressed together. It's more intuitive than it sounds, trust me.
In the ancient times, the escape button wasn't at the upper left corner, but to the left of Q (ADM-A3). Vi (and by extension Vim) just haven't adapted to a different keyboard layout.