unit – should my static class be derived from UnityEngine.MonoBehaviour?

I am working on creating an object to keep the game status, player data, and so on. It is static (singleton lifestyle) throughout the life of my game.

I started by the path of a static class, with a static instance, like this:

Public class PlayerState
Private Static PlayerState DATA_INSTANCE = new PlayerState ();
static public Instance PlayerState
get {return DATA_INSTANCE; }

Then I started looking around and I see implementations that derive from UnityEngine.MonoBehaviour and implement instance management differently, adding the script to a game object and using DontDestroyOnLoad () to make sure it stays in memory.

So I wonder: what is the correct idiomatic model in the unit for a singleton type?

Do I really need all the features of the unit of one UnityEngine.MonoBehaviour derived type (for example: Update()) for my static type?

I admit that I am uncomfortably dealing with static classes in general. In this case, I am also uncomfortable to add another type that potentially enters the cycle of the frame when it is not necessary (I mean that the unit will call methods like Update() for each cycle).