So the problem is people may randomly ask for withdrawals and sendmany will mean we send out in batches through some type of cron.
When you say that it is advisable to avoid spending unconfirmed outputs, What can go wrong?
We hope to have a higher throughput eventually so to avoid merging coins like you advise is there a function or setting in bitcoin core? which software would be best used as a hotwallet?
The problem with spending unconfirmed outputs is transaction malleability. If the txid of the first transaction in a chain is changed, all transactions that use outputs from this first transaction become invalid.
If you want to avoid sending withdrawals in batches, you could look into splitting large outputs (such as transfers from a cold wallet) into several smaller ones periodically. That way a single small withdrawal doesn't lock too many coins in an unconfirmed change output.