I tried mapping jj to esc, but even after a few days I couldn't really get used to it. Always drove me crazy when it would switch modes when I just intended to type 'jj' as a variable name in loops. At least it got me to use more meaningful names!
Your latter suggestions are brilliant, I'm going to steal them right away.