When true, step is a no-op (editor edit mode freezes the sim).
Resolves with the world once Jolt has initialized.
Run cb with the world once it's ready (immediately if already there).
Register a per-frame callback run after each world step (e.g. transform sync).
Subscribe to pause-state transitions. The editor toggles pause on play/stop, so components use this to snapshot their authored pose when play starts and restore it when play stops. Fires only on an actual change.
Set the pause state, notifying onPauseChange subscribers on a change.
Step the world then run every ticker. No-op while paused or pre-init.
The shared world, or null until its async init resolves.