onStationaryStateChange
Forward a stationary↔motion transition to the engine. Plan §2.5.
One call per transition edge — not a polling tick. On Android the caller is the trigger-sensor pair in com.mapsted.positioning.coreEngineImpl.modules.sensors.InertialSensorListeners. Pass null for confidence — TYPE_STATIONARY_DETECT / TYPE_MOTION_DETECT don't expose it.
Dispatched via the general (multi-thread) engine executor rather than mSensorIngestExecutor. Stationary transitions carry an explicit unixTimeMs (the platform's transition timestamp, not dispatch wall-clock), so the engine reconciles cross-stream ordering by timestamp — consistent with the existing dispatch path for addCellTowerData, addBleData, and other non-GPS sensor streams. The single-thread ingest executor is reserved for GPS where ordering relative to its own stream matters.