Okay, I just found this thread: Online timing issue with 2024.2.3 -- upgrade to 2024.2.4 today
This fixed most of the issues described above - I was programming under 2024.2.3, and updated to 2024.2.4.
HOWEVER, with the new version, a timing issue still persists - the trial should end after a valid click. After a valid click on an image is made, the images disappear, but the trial is not interrupted as it should - it seems to wait for the remainder of the 5 s before the next fixation cross appears. The trial is interrupted as expected upon a valid click when the experiment is executed in python, but not when it’s run locally or online as JS.