This was the base page setting that got corrupted or confused somehow. Making a new one and setting that as the base page in the CRM Settings page resolved my issues.
I'm setting up a new site (https://members.marylandtesla.com). CiviCRM 5.48.0, WordPress 5.9.3, CentOS 9 Stream, PHP 8.0.13.
Had a CiviContribute Member Contribution Page (click on the 'become a member' link to see it) that worked, but it didn't ask what WordPress login was desired and didn't mail the user their credentials when the contribution was processed (note, I'm still using a dummy payment processor for now). Then I remembered I had to go into my Profile used on that page to the Advanced Settings, so I did that, and it's now asking for a WP login to check availability.
I don't think I changed anything else in the meantime, but the Review your contribution link now gives a 404 instead of the actual contribution review page. Tried rolling back the Profile change to no avail, so clearly something else changed.
Searched the web, and found this question was already asked and answered here ("HTTP Error 404.0 - Not Found" error on Contribution page). But I made sure the CMS Database Integration WordPress base page was not blank and is the default civicrm. Tried to change WP Permalink setting but man that caused chaos, so I changed it back to its default.
I also set the redirect URL under the profile to a Thank You page from another answer here.
Turns out this is not just for contribution reviewing. Event registration does the same thing.
Anyone have any ideas as to what I am doing wrong here? Wish I could remember what else may have been changed between "it worked" and "it doesn't." Thanks.