Synchronization Issue in ML-Agents Decision Timing

After researching Time.timeScale, FixedUpdate(), and EnvironmentStep(), I found that decision time (Python producing actions) can desynchronize with Academy.EnvironmentStep() (Unity applying actions), leading to duplicate actions or states. This appears to stem from the non-blocking websocket mechanism for action/state communication. A potential solution is a blocking mechanism to pause rendering until the next action is received, ensuring proper synchronization.
I also observe a significant performance difference when in headless mode and graphics mode and when the timeScale is high.

Please correct me if I’m wrong, and I’d really appreciate your thoughts!