After a considerable amount of experimentation with every conceivable combination of caching mode, I give up on #zfsonlinux as I simply couldn't find anything to get it to exceed 1.6Mb/sec. Maybe it's the 32-bit linux kernel I was running it within, maybe it's some weird interaction, either way I can't make it work.
So ... thanks to my Promox cloud being basically fantastic, I simply created a new KVM for a copy of #FreeNAS 8.3 beta1 which is based on #FreeBSD 8.3 stable. FreeBSD v8+ comes with ZFS built in as a core kernel component, and there are plenty of big iron deployments out there (probably more than ZFS with Solaris) so we know it really does work.
Anyway, watch this:
[root@freenas]/mnt/IcyBoxZ# dd if=/dev/zero of=foo bs=4096 count=10k
10240+0 records in
10240+0 records out
41943040 bytes transferred in 0.125360 secs (334580695 bytes/sec)
Yeah, that's 330Mb/sec on the same test which ran at 1.6Mb/sec at best on Linux. Obviously it's doing some caching there, but if you write a few gig it still maxes out at 130Mb/sec which is about as fast as the hard drive can go. This is much better. Now I must figure out how to wire the ZFS storage into Linux via NFS, and set it copying.