まずは確認ですが、ちらつきというのは、キーを押した瞬間に非常に短い時間画面が真っ白になるということですよね?
たしかに、一部の環境でそれは確認され、一度表示された画像はその後ちらつかないので Preloadに関わっていそうです。
Preloadのやり方(プログラムの書き方)に問題はないと思います。
あと、今回いただいたサンプルは1試行分なので2試行目以降は不明ですが、たぶん2試行目以降はちらつかないのではないでしょうか?
(1試行目ですべての画像が読み込まれているため)
あと個人的な感想としてはちらつきはあったとしてもほとんど気になりませんでした。
さて、私のほうで行った動作確認の結果は次の通りです。なお「Preloadあり」しか確認していません。
Mac
Safari, Chrome, Firefoxいずれでもちらつきはありませんでした。
Windows
Chromeはちらつきなし。EdgeとFirefoxはちらつきあり。
あと、ご参考までにお伝えしておきますと、私が開発して現在論文執筆を進めているライブラリーがあります。
十分な実績もなく、サイトの情報も中途半端なのですが、もしよろしければご利用ください。
今回いただいたプログラムでは、loop if を使っておられますがコードが複雑になりませんか?
私はこの点を改良したいなあと思っていて、個人的にライブラリーを作成するモチベーションになりました。
jsPsychで手が届きにくいところをサポートするために作ったつもりです。
(逆にjsPsychを使ったほうがよい実験や調査も多いです)
ご参考までに。