We used to set Feature.IsActive property only based on whether the feature is in the config file. That meant that we set it to True even if the mounts were not all active, which led to errors when activating a feature which was in inconsistent state (the feature being in the config file but not all mounts being active).
This should also avoid (potential) issues where after a method call that failed or was cancelled, a feature would have IsActive set to True (because it's in the config file) but the mounts not being active, causing the feature to be displayed as active in the UI but the user's data not actually being stored. We now set IsActive to False in that case.
Closes #19376 (closed), #19291 (closed), #8447 (closed), #19331 (closed)
Test deleting data
Maybe test error being displayed in Persistent Storage settings when activation of features failed in the Welcome Screen
Maybe open Persistent Storage settings automatically when activation of some feature failed in the Welcome Screen
This is based on Welcome Screen: UI changes (!1063 - merged), please review and merge after that!
Let's try to merge (or at least have some early review) this by Monday March 13 because on March 14 it will be tested with users: #18648 (comment 205079).