I agree with Hatchy, two speed options would be enough. Fast and slow. A "fast" option would mean paying a premium fee, ensuring inclusion in the next few blocks. A "slow" option would mean being part of the regular batched transactions.
The second suggestion, using multiple hot wallets, may not be an ideal solution because it increases the attack surface and adds layers of complexity. I think better UTXO management would be a smarter solution. By creating multiple, roughly equal-sized UTXOs, you can select the most appropriate number of UTXOs for the exact amount being withdrawn, minimizing the size of the transaction (and thus the fee) for a given speed. This will also allow you to service a "fast" withdrawal without necessarily needing to wait for a change output from a larger, slower batch transaction.