Jag misstänker att det har att göra med gap locks och nästa-knappslås och skillnaderna i beteendet hos REPEATABAR LÄS :
Utdragen är från MySQL docs:SET TRANSACTION syntax
och LÄS ENGAGERADE :
Kanske OP kan berätta statusen för innodb_locks_unsafe_for_binlog system variabel och om samma låsning inträffar när denna variabels inställning ändras.
Dessutom, om samma låsning sker med icke-sekventiella ID, som 18 och 20 , eller 18 och 99