This is the syntax I think I should be using with rsync to use an identity file to connect:
rsync -
Are you executing the command in bash or sh? This might make a difference. Try replacing ~ with $HOME. Try double-quoting the string for the -e option.
~
$HOME
-e