Offline Behaviour
Events are persisted on device and delivered in batches. While offline the SDK skips delivery and keeps events queued, then flushes automatically when connectivity returns. If the queue reaches maxQueueSize, the oldest events are dropped first.