After days of debugging I've concluded that the physical disk write cache setting simply doesn't work on this controller. This server is going to be connected to an UPS, so I'd like to use the disk write cache, but it simply doesn't matter whether it's enabled or not. I get decent sequential write speeds when using big blocks (256KB) with at least 16 concurrent I/O workers, but only when using thick provisioned eagerly zeroed disks (otherwise the performance is stuck on 10MB/s). But anything smaller and with fewer workers is just utterly slow. Really disappointed, the server I'm going to replace running on Linux software raid (mdadm) has a much higher write performance because of the write caches..
So HP please allow us to use the physical disk cache, that should be too hard to support..