It might make sense to try to send out txs faster during congested/volatile periods. Add something to track how long simulateTransaction calls take, and track the median/max CUs estimated (check that these values make sense). Use these values when simulateTransaction takes longer than usual (i.e.the P50 has been increasing over the last 5 minutes), and just stop simulating and pre-populate the CU limit