Consider this scenario:

In this case as a user I can choose to let my app opt-in to OS changes as they occur, or to control dark and light myself.
Note these choices in this UI are mutually exclusive. As soon as I choose to toggle the dark mode, I've opted out of OS changes (aka device settings).

Similarly if I opt-in to "use device settings" then I can no longer manually set the dark mode on or off.
Currently I see these problems:
I propose adding:
public enum AppTheme
{
Unspecified,
Light,
Dark
}
Then OSAppTheme is that type, but it can be shared by a new type below.
public bool Application.UseOSAppTheme { get; set; } = true;
When OSAppTheme changes are requested by the OS, this bool should be checked before triggering any changes.
public AppTheme UserAppTheme {get; set; }
Some variable to store the user chosen preference. Perhaps OSTheme is a new common type. Then when the user chooses to toggle their app theme between dark and light modes, they can use an API like:
App.Current.UserAppTheme = AppTheme.Dark;
This I think also makes more sense with the other naming of AppThemeColor and OnAppTheme which can be used both for OS theme changes and user theme changes.
What's the expected behavior in the following scenario?
C#
UseOSAppTheme = false;
UserAppTheme = AppTheme.Unspecified;
This is definitely an issue on older versions of Android too where there is no general settings option to set Dark mode therefore using the default implementation limits the app to Light mode. @davidortinau's suggestion would make it possible for Android users to choose between themes too.
Most helpful comment
What's the expected behavior in the following scenario?
C# UseOSAppTheme = false; UserAppTheme = AppTheme.Unspecified;