OK, I think I found the root of the problem. It has to do with how the WordPress codebase handles installs on one subdomain when the posts show up on another subdomain.
This used to be a maddening problem with the basic post management screen. The main post management screen would hit "www.domain.com/mysubdomain/wp-admin/edit.php" just fine. But click on the pagination for it, and the WordPress PHP file would flip to "mysubdomain.domain.com/wp-admin/edit.php?paged=2" and result in a 404.
Now I see that the preview PHP is introducing the same mistakes that the edit.php files finally fixed in WordPress: previewing to the URL "www.domain.com/mysubdomain/?p=45&preview=true" works like a charm and comes up fine. But now the preview function is forcing "mysubdomain.domain.com/?p=45&preview=true" which returns a 404.
Maybe there's an .htaccess URL remapping hack I can use here. But really -- there's no reason why WordPress should fix this problem in edit.php and at the same time introduce it in the preview URL generator.