Many transactions are getting stuck in the "cleaning up" state - what could cause that?
I have the same issue on RDS. Some of "cleaning up" transactions blocked my ALTER TABLE query. And as I understood in MySQL 5.6 there is no way to find out which transaction should be killed. 

So, my solution was to kill all "cleaning up" transactions. And it helped me.
And more thing: according to AWS doc on RDS you should use CALL mysql.rds_kill(pid) instead of standard KILL.