MySql timeouts waiting for table lock, no apparent deadlocks
If a transaction has been running 837 seconds, I suggest that its is poorly designed.  I don't like a transaction to last even 5 seconds, much less the default innodb_lock_wait_timeout=50.

Can't wait for user - A transaction should not include any user interaction.  Waiting for a user might mean waiting for him/her to take a phone call.  If you need something locked for some kind of user 'session', BEGIN...COMMIT is not the way to do it.

autocommit=0 is bad - Another possible mistake is autocommit=0 then forgetting to COMMIT.  For that reason, I recommend never using that setting.  Instead, be explicit about including BEGIN and let it be a reminder that you need a COMMIT.

If you would like to discuss this further, let's see your whole 'transaction', either at a high level, or with specific SQL statements.