Put together a list of all bets and send the winnings in a sendmany.
That would reduce the number of transactions a day and the size of the blockchain, I think.
And 30 seconds is still pretty fast IMO.
That doesn't fix the problem of filling the blockchain with lots of tiny "you lost" payments which will probably never be spent, and so will never be pruned.
Also, the current design is such that your payout depends on your bet, so if your bet never confirms neither do your winnings. If they use a sendmany then your winnings depend on MY bet as well as yours. So if my bet never confirms neither do any of the winnings paid out in the same transaction as my winnings.