Most of the time I get server generated email pretty much on time. There is no doubt however that from time to time the dreamhost mail queues do get backed up.
The only two solutions are
-find a more reliable external SMTP server that will allow you to send mail and reconfiguring your contact form accordingly.
-bypass using email (or add a backkup).
The second option is probably the quick fix. Replacing or right after the mail() statement in your contact form just open a file on the server in append mode and write the same information as was contained in the email. Have the path to that file be somewhere in it’s own folder so that you can add an .htaccess file to secure it (setting it up so the client can “log in” via credentials or the clients IP address is recognized. The caveat is that you have to figure out how to keep the file from getting really really big-- one option might be to use date based filenames, giving a new file for each day (or month). Then you could write a few lines of PHP that made a nice pretty looking front door index.php to those files, and just give the client the URL to the .htaccess controlled folder.
Also a word of caution about your contact form: If the “From” address of the email is a field from your form, this is going to cause you to LOSE emails. see: http://www.dreamhoststatus.com/2012/04/04/improvements-to-outgoing-spam-prevention-policy/
Other threads that you should read: