Sorry I forgot to mention that i-search requires two new key binding entries which you'll need to manually add if you made a local copy:
"^s" = "ISIM_incrementalSearch:"; "^S" = "ISIM_reverseIncrementalSearch:";
I named my methods the same as the ISearch InputManager/Plugin. So if you already have this installed, the key bindings from your "global" key bindings file should already make it work, _except_ that ISIM use control-r for the reverse search, TextMate is using that for 'execute line', which is why I choose control-S.
Maybe this is why reverse search doesn't work for you Wayne?
Regarding aborting the search with movement keys, that would pretty much make it impossible to go back and make edits in the search string (other than backspace), but maybe no-one does that?