The GetEventsByContractIdRequest processing is not cached.
The GetEventsByContractKeyRequest processing may return a cached result for a short time such that the created event is populated but the archive event is not. This can only happen for a short interval between the time when the contract is archived and the processed transaction being observed by the event cache (this will usually be almost immediate).