decouple the event-fetching step from the arb-simulating step. Asynchronously update the event+tx queue as it has items popped off by the sim processor, so the sim processor always has a sufficient amount of work to do, and we're not left with a one-tx remainder step that wastes (a TON of) time that could be spent crunching more arbs.