Ended up revising my approach to the whole configuration. I bought an SM951 128GB for the caching device and grabbed a pair of seagate 2TB drives and put them in an md raid 10. Random 4k inside one of the VMs averages between 12,000 and 20,000 write depending on queue depth. This seems low given that the SM951 is rated really high, can bcache be tuned to increase the dirty cache for random io?

I did manage to find a setting for sequential which pushed it up to 1GB/s.