"Since the whole protocol is bit-banged, it is susceptible to delays caused by other higher priority task"<p>Ermmm no.
Not utilising both cores properly on the ESP32 is a common mistake which causes this (described) behaviour <a href="https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/" rel="nofollow noreferrer">https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/</a><p>Ref. me, I wrote a Java Gameboy 2BPP encoder/decoder library and have done multicore ESP32 dev. <a href="https://github.com/KodeMunkie/gameboycameralib">https://github.com/KodeMunkie/gameboycameralib</a>