The ERR_TOO_MANY_REDIRECTS error typically occurs when there's a loop in the redirection process. Let's go through some potential solutions:
Make sure that the site and home URLs for your subdirectory site are correctly set in the database. You can check this by accessing your database through phpMyAdmin or a similar tool. Look for the wp_2_options table (assuming site1 is the second site in your network) and check the siteurl and home option values.
If you're using SSL (https), ensure that all URLs in your configuration are consistently using either http or https, not a mix of both.
Your wp-config.php file looks mostly correct, but let's make a small adjustment:
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
Obs.: Remove the trailing slash from these definitions.
Your .htaccess file looks correct for a multisite setup, but let's try a slightly modified version:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# Add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress
Remember to back up your site before making any significant changes. If you try these steps and still face issues, please provide any new error messages or behaviors you observe, and I'll be happy to help further.