Supplying the -f (run in foreground) flag fixed it for me. I suspect that this is because the VIM error code is not being returned to Git, but it works nonetheless.
$ git config --global core.editor /usr/bin/vim -f
http://blog.youkuaiyun.com/fudesign2008/article/details/8275862