We had some strangeness and I have an explanation:
It appears experimentally that if you wait enough (probably for auctions to expire) one of the GetAuctionItem* api becomes actually blocking (I suspect because it's reordering the result list) and causing reentrance (using coroutines)
This throws quite a wrench into an implementation expecting linear executing and only 1 timer running at a time
gory details are on
https://github.com/mooreatv/MoLib/issues/16