Thinking more about this.
If every new Project had a property like a "Background timeout" which is set to 0, then the current behaviour of Freeter unloading a project as soon as another is selected would be the default.
But for the projects where this is undesirable, the user could choose to enter a number of seconds, based on what should be enough from previous experience. And if the project is not selected again before the timeout expires, Freeter can unload it. (And selecting a project resets the counter.)