Updating indexes is usually added to a transaction's batch such that as a transaction commits, cache indexes are updated accordingly. I presume you are suggesting that indexes are updated within the transaction such that subsequent queries within the same tx sees updated indexes? If that is the case, that would be non-trivial to implement since we'd need to be able to roll back any index updates in the event of a transaction failure.
So it sounds like we're somewhat correct in our evaluation that updating the index is not part of the transaction.
We can work around this issue for a while since it is only a problem under light load. During normal load there are enough transactions that we always have a bit of a backlog and we can find work immediately.