Duolingo is inconsistent. For "I am happy with my new dress", they only accept "feliz" as correct (either feliz or contento should be accepted), but here they use "contento" for the same concept. My understanding is that feliz conveys more excitement than contento, which we can't determine from the context given.
At least as it applies to this sentence estoy is used when describing a mood. In general use soy (ser) for descriptions, occupations, characteristics, time , origin, relations. Use estoy (estar) to describe locations, temporal situations, weather, mood, or result of a process.
To think of the difference between ser and estar in a broader way- I quote from another post. I wish I had written down the contributors name to give proper credit.
" When a Spanish speaker uses ser it is not necessarily a sign that the speaker thinks the property is permanent - but that is is essential - that if it were to change it would become some other thing. Likewise the use of estar does not always imply that the quality is temporary- but merely that it is not a part of the thing's identitity - that it would remain that thing- even if the property were different."
This is probably more of an answer than you were looking for, but to understand that if you are describing the '' essence"of something or someone - well that is the key to ser. (not a native speaker here - only repeating what I have found in the duo discussions)