InnoDB has a transaction running, but "SHOW PROCESSLIST;" shows nothing
Is it possible that your InnoDB settings are way too small ?

The default innodb_buffer_pool_size is 8M. Could you increase it ?

The default innodb_log_file_size is 5M. Could you increase it ?

You should resize them as follows:

Goto this link to compute the proper size for the innodb_buffer_pool_size based on the amount of InnoDB you have or 75% of installed RAM, whichever is smaller.

Once you have this number, set innodb_log_file_size to 25% of the computed innodb_buffer_pool_size. In order to resize them, you will have to shutdown mysql, delete the innodb log files, and start mysql.

Give it a Try !!!

CAVEAT

IMHO The reason for this conjecture is that lots of MVCC activity + default InnoDB configs spells a lot of internal InnoDB maintenance we may never know is going on.

Here are other possibilities :


Could the .ibd file be corrupt ?
Is the .ibd on a degraded array ? 
Is there an insufficient number for the innodb_open_files option ?
Is tmpdir folder too full (tmp tables log jamming in the tmp folder) ???
Are the my.cnf files of the two instances identical (less server_id) ???