Incomplete mysqldump
It may have been a problem with max_allowed_packet
not being set high enough on both the client (i.e. mysqldump) and the server (i.e. Amazon RDS). I set this to 500M on both and that seems to have fixed the problem.
Since InnoDB's information schema tables only give row count estimates, it's hard to tell if my snapshot truly includes everything from RDS. All the tables are there, but the row counts differ. I'll update with a more definitive answer when I have some time to script a more thorough analysis.
Have you tried?
mysqldump --compress --add-drop-table data --routines --events --comments --extended-insert -h {host} -u {user} -p {database} > dbdump.sql
This is simple the way I always do it without any problems. Basically doing the dump this way you get everything you have (data, objects and sometimes precious comments) at a certain moment ignoring uncommitted transactions.