It’s tricky. Trying to analyze it now I think “estar” should be used when describing a current / short term state of being. And “soy” should be used to describe a permanent or long term state of being that’s not easily to change.
I’m happy. (A current or short term state)
Estoy contento.
I’m American. (A permanent / long term state)
Soy americano.
I’m drunk. I’m sober. (A current or short term state)
Estoy ebrio. Estoy sobrio.
But even if someone is always sober, I don’t thing in Spanish we say “soy sobrio”. It’s hard to explain why. Maybe it’s because the state of being sober can easily be changed.
Other ideas?