Form using admin-post.php gives 404 after submission

First of all…

Your action is called rguroo_email_verification_form, so you should use it when registering your hooks. But you use this instead:

add_action( 'admin_post_nopriv_email_verification_form', 'verify_and_sanitize_email_form', $priority = 10, $accepted_args = 1 );
add_action( 'admin_post_email_verification_form', 'verify_and_sanitize_email_form', $priority = 10, $accepted_args = 1 );

It should be:

add_action( 'admin_post_nopriv_rguroo_email_verification_form', 'verify_and_sanitize_email_form', $priority = 10, $accepted_args = 1 );
add_action( 'admin_post_rguroo_email_verification_form', 'verify_and_sanitize_email_form', $priority = 10, $accepted_args = 1 );

Also… These actions don’t take any params, but you declare they should take one param (but later on, your function doesn’t take any…)

404 Not Found

Not Found

The requested URL was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.