v3.6.xで、関数に入った時に前のローカル変数をスタックに積み、終了時にスタックから戻す処理が追加されたかと思います
このスタックが1つしかないため「秒待つ」の間に別のイベントが発生するとスタックの整合性がヤバくなります(語彙力なし)
動作確認
//------v3.6.25
0.1秒後には:
//スタックに積む①
「A開始」を表示 //1
1秒待つ
「A再開」を表示 //3
//スタックおろす (①ではなく②をおろしている)
0.5秒後には:
//スタックに積む②
「B開始」を表示 //2
1秒待つ //待っている間にAのほうの処理に戻る
「B再開」を表示 //4
//スタックおろす
//------
実行結果
A開始
B開始
A再開
B再開
時系列
↓「0.1秒後には」でスタックに積む①
↓「0.5秒後には」でスタックに積む②
↓積んだままAの処理が再開する(ローカル変数がおかしくなる)
↓「0.1秒後には」でスタックおろす(①ではなく②をおろしている)
↓「0.5秒後には」でスタックおろす