is correct. Your problem is the physics simulation portion. To accurately play back corrections, you need to store the physics state of the entire physics scene each frame, warp to that point in time, apply all the corrections you have for that frame, and then continue forward.
Ideally you’d do that by storing playing input or forces for each cube, etc.
The NetherRealms guys did a good talk on what this takes: