The {{environment_timeout}} setting is a less-than-ideal way of dealing with environment purging, because it doesn't take into account the actual usage patterns for any given environment, and forces the user to make a call on whether to accept longer load times (timeout of 0), inconsistent state between JRubies (a timeout between 0 and unlimited), and high memory usage (unlimited timeout).
The {{environment_timeout_mode}} setting was added in PUP-8014, and this ticket is to change the remove the setting and change the default (and only) behavior so that puppet evicts environments that haven't been used for a certain amount of time.
Puppet no longer supports environment timeouts based on when the environment was created, as a result the {{environment_timeout_mode}} setting has been removed. In Puppet 7, the {{environment_timeout}} setting is always interpreted as "0" (never cache), "unlimited" (always cache), or a a value relative to {{environment_timeout}} seconds from when the environment was last used.
Puppet no longer supports environment timeouts based on when the environment was created, as a result the {{ "environment_timeout_mode}}" setting has been removed. In Puppet 7, the {{ "environment_timeout}}" setting is always interpreted as "0" (never cache), "unlimited" (always cache), or {{environment_timeout}} some number of seconds from when the environment was last used.