Hi Erin (and anyone else with this problem),
This appears to have something to do with having the search engine safe urls option turned on. I turned off search engine safe urls and now it redirects to the login page without error 404 and displays the error message fine.
The piece of code that causes this is in Order_Info_Process.php (line 209 in my file)
if ($check_customer['purchased_without_account'] != 1) {
tep_redirect(tep_href_link(FILENAME_LOGIN,
'login=fail&reason=' . urlencode(
str_replace('{EMAIL_ADDRESS}',$check_customer['customers_email_address'],PWA_FAIL_ACCOUNT_EXISTS)), 'SSL'));
There should be a way to rewirte this so it works with search engine safe URLS and I will post the fix here if I come up with one.