This is a common enough edge case that is sufficiently terrible to explain to users that the lib should just handle it.
It's possible to hit a tx size error because the user must consolidate utxos. In this case, the user probably does not know what UTXOs are or why they should be consolidated. We just want to fulfill the action.
Adding auto utxo consolidation at the lib level is the best way to handle this.
Going forward, we can also look at alternative utxo selection strategies, ways to make this event less likely. But for now this solves most of the problem. We are already configured to build an array of txs that fulfill a given action; in this case, this array simply needs some additional txs before the action tx(s) to consolidate utxos.