IIUC if pools would pay out by adding a generated transaction to the next block that they find, they should always be able to avoid any transaction fees, but there could of course be quite some delay until the payout happens. How are pools currently doing this?
Scheduled payouts just get included in the pool's next block.