A little over a year ago, poster urbanroute shared a workaround that worked for him with a similar problem.
From looking at that post, and looking at your post, I see one difference. While it may not appear to be significant, he created the “tmp” directory for saving the session info within his web accessible space, while you have (obstensibly for security reasons) created it outside your web accessible space).
That got me to thinking, and I am wondering if something that is now different in the DreamHost configuration from the way it was then might be affecting this:
Do you have “Extra Web Security” enabled in the Control Panel for your Domain?
Do you have “Enhanced Security” enabled for your user (the user under which PHP-CGI is running)?
You might check those settings, and see if changing either, or both, of them makes a difference.
Additionally, I suggest a good “test case” would be to do a “test configuration” exactly duplicating what urbanroute reported to work, by placing the “tmp” directory inside your “yourdomain.tld” directory.
Those steps ought to at least help narrow the possibilities as to what might be causing the problem.