770695dc77
The event-level retry only protected the ITEM_SLOT_UPDATE broadcast, but ItemSlot:Update() reads GetContainerItemInfo live on every call and is invoked from many paths (OnShow → ReloadAllItemSlots, AddItemSlot, BAG_UPDATE_TYPE, search updates). On a laggy server those live reads flash slots empty. Add a shared retry queue at the slot-render level so a slot with self.hasItem set will defer rather than draw nil; cap at RENDER_RETRY_MAX so a genuinely emptied slot still resolves within ~3s.