Just a hunch, but have you tried disabling AHI?
innodb_adaptive_hash_index = 0
I vaguely remember having a similar problem a while back and it was AHI related.
I hit a number of spurious locking issues in 10.4.17 that seem to have been resolved in 10.4.18. It is plausible that some of them also affected the 10.3 branch and were similarly resolved recently. Some of them manifested similarly until I mitigated them by setting the lock_wait_timeout to 30 on the basis that it was better for a query to give up and be retried than to be blocking things for longer. I haven't seen it come up since the 10.4.18 upgrade. 10.4.18 change log has quite a few fixes for various locking issues.