Replace a zpool with minimal downtime

Create new pool

zpool create newpool raidz3 sdX sdY sdZ ....

Send the data

zfs snapshot livepool@1
zfs send -R livepool@1 | zfs receive -F newpool

Re-sync data that's changed since the initial snapshot

zfs snapshot livepool@2
zfs send -IR livepool@1 livepool@2 | zfs receive -F newpool
Repeat this step if it took too long - increment the @X snapshot number each time

Flip the pools

Shut down the apps. Check lsof and/or fuser to make sure nothing's using the FS.

zfs snapshot livepool@X
zfs send -IR livepool@X-1 livepool@X | zfs receive -F newpool
zpool export livepool
zpool import livepool livepool.old
zpool export livepool.old
zpool export newpool
zpool import newpool livepool
Should be good to go to restart the apps. Destroy any snapshots when you're ready.