If the suggested fix doesn’t work (woocommerce_order_email_verification_required filter), check if any of the plugins are injecting $_POST data after the checkout.
If $_POST is not empty on the thankyou page the guest_should_verify_email function will return before reaching the filter.
It is the line 390 in wp-content\plugins\woocommerce\includes\shortcodes\class-wc-shortcode-checkout.php:
if ( ! empty( $_POST ) && ! wp_verify_nonce( $_POST['check_submission'] ?? '', 'wc_verify_email' ) ) {
return true;
}