defunct processes seldom contribute to high IO wait times anyway. (Although they do suggest something is wonky, even Solaris doesn't usually have 18 of those things floating around after such a short uptime (half a year isn't long).
First identify if it's a tuning problem, a rubbish IO subsystem, or a rubbish application.
Is it so slow when the applications are not running? (ie bare OS, nothing else in memory)
Is it slow if you dd a few gigs of /dev/urandom out to a temp file on the disk?
If it's slow even without the app, see if the performance varies between the two disks, look for faults on the slower one if they differ a lot. Look for something wrong with the interface card if it's both the same.
If it's slow when the app runs, try to identify what process is spending all it's time in iowait and start there.
If these are not local disks (ie SAN perhaps), check your block sizes are sensible, exact multiples of each other, check for excessive contention on the fabric switch, yell at your SAN admin some - it's always their fault