Index: src/wp-admin/includes/schema.php
===================================================================
--- src/wp-admin/includes/schema.php	(revision 45777)
+++ src/wp-admin/includes/schema.php	(working copy)
@@ -542,6 +542,9 @@
 
 		// 4.9.8
 		'show_comments_cookies_opt_in'    => 1,
+
+		// 5.3.0
+		'admin_email_lifespan'            => ( time() + 6 * MONTH_IN_SECONDS ),
 	);
 
 	// 3.3
Index: src/wp-admin/includes/upgrade.php
===================================================================
--- src/wp-admin/includes/upgrade.php	(revision 45777)
+++ src/wp-admin/includes/upgrade.php	(working copy)
@@ -2125,10 +2125,14 @@
  * @since 5.3.0
  */
 function upgrade_530() {
-	// Do `add_option()` rather than overwriting with `update_option()` as this may run
-	// after an admin was redirected to the email verification screen,
-	// and the option was updated.
-	add_option( 'admin_email_lifespan', 0 );
+	// The `admin_email_lifespan` option may have been set by an admin that just logged in,
+	// saw the verification screen, clicked on a button there, and is now upgrading the db,
+	// or by populate_options() that is called earlier in upgrade_all(). 
+	// In the second case `admin_email_lifespan` should be reset so the verification screen
+	// is shown next time an admin logs in.
+	if ( function_exists( 'current_user_can' ) && ! current_user_can( 'manage_options' ) ) {
+		update_option( 'admin_email_lifespan', 0 );
+	}
 }
 
 /**
Index: src/wp-login.php
===================================================================
--- src/wp-login.php	(revision 45777)
+++ src/wp-login.php	(working copy)
@@ -594,7 +594,7 @@
 			 *
 			 * @param int Interval time (in seconds).
 			 */
-			$admin_email_check_interval = (int) apply_filters( 'admin_email_check_interval', 180 * DAY_IN_SECONDS );
+			$admin_email_check_interval = (int) apply_filters( 'admin_email_check_interval', 6 * MONTH_IN_SECONDS );
 
 			if ( $admin_email_check_interval > 0 ) {
 				update_option( 'admin_email_lifespan', time() + $admin_email_check_interval );
@@ -617,7 +617,7 @@
 
 		?>
 
-		<form class="admin-email-confirm-form" name="admin-email-confirm-form" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=confirm_admin_email', 'login_post' ) ); ?>" method="post">
+		<form class="admin-email-confirm-form" name="admin-email-confirm-form" action="<?php echo esc_url( site_url( 'wp-login.php?action=confirm_admin_email', 'login_post' ) ); ?>" method="post">
 			<?php
 			/**
 			* Fires inside the admin-email-confirm-form form tags, before the hidden fields.
