Validating emails of new CiviCRM accounts?
Your question is rather complex, so this answer only addresses the registration issue. It might be better to start a new question for the other issues you face.

You can use BuddyPress for user registration - in conjunction with BP XProfile WordPress User Sync and CiviCRM WordPress Profile Sync. The registration form will have "First Name" and "Last Name" fields which will be synced to both WordPress and CiviCRM.

I'd recommend using the GitHub version of BP XProfile WordPress User Sync because there are limitations in BuddyPress which make auto-updating problematic. You'll find the relevant info on the plugin's page.

In order to capture additional data, you can use BuddyPress xProfile fields for this. There are hooks in both plugins which will allow you to sync the content of a BuddyPress field to the appropriate CiviCRM field.