Try hooking in as soon as the user is created or updated.
<?php
function wpse_250785_sync_user_login_with_email($user_id) {
$user = new WP_User($user_id);
if ($user->user_login != $user->user_email) {
$user->user_login = $user->user_email;
wp_update_user($user);
}
}
add_action('user_register', 'wpse_250785_sync_user_login_with_email');
add_action('profile_update', 'wpse_250785_sync_user_login_with_email');
Disclaimer: Untested, but should work 😉