Following your advices I have been running tests yesterday. Below are the results.
I indicated the number of samples recorded to give you an idea.
The hdf5 files are available on WeTransfer for about a week.
PsychoPy 1.82.01 vs 1.84.2
Upgrading to the lastest PsychoPy version doesn't fix the probem of missing samples: version 1.82.01 gets 2355 samples; version 1.84.2 gets 2354 samples, which is also wrong (it should be around 2500 samples in both cases).
Following this result, all the recordings for the following tests have been made with PsychoPy version 1.82.01.
Uncalibrated vs calibrated (don't ask me why I did this... I was just trying as many things as I could!...)
For some reason, 500 Hz Binocular recordings made without calibration don't have missing samples: I had 2502 samples in the uncalibrated recording (of course the values are all zeros so this is totally unuseful but you can still check that the timing is perfectly ok!).
500 Hz Binocular vs 500 Hz Monocular (left and right)
This is when things are getting interesting: "500 Hz Monocular left eye" gave 2495 samples; "500 Hz Monocular right eye" gave 2497 samples - which is great, no samples are missing. Switching to monocular seems to fix the problem.
500 Hz Monocular vs 1250 Hz Mococular (left and right)
Finally, "1250 Hz Monocular left eye" gave 6200 samples (which is fairly good IMO); "1250 Hz Monocular right eye" gave 6235 samples. It should have been 6250 samples in both cases, so we have more than 99% of the samples which is acceptable I think.
As a conclusion
If I understand well, and based on the above results, the problem seems to be coming from SMI/iView C library, not from iohub so I guess when using our eyetracker, we will just record monocular data (as binocular is not crucial in our studies, whereas timing is).
It might not be necessary for you and I to meet via Teamviewer, as I consider that my problem is solved, but let me know if you think otherwise.
If you confirm that a solution has been found, I will just close this discussion.
Thank you very much for your time and help, that has been tremendously helpful!
For your information, during the tests, I noticed that the track_eyes setting in the yaml file wasn't taken into account (whatever I wrote for this parameter, it was working perfectly - this is just to complement one of your previous posts).