So Unity alerted them that where in breach, they had an ongoing discussion in which unity finally came to the conclusion that they where in fact not in breach... and then they changed the conditions and punished them. Is that how that is to be understood? I mean otherwise why alert them if being in breach before the license change, or why no punish them under the old license but change it first and then punish them?
No, they were in breach before hand, and Unity attempted (poorly) to make it more clear why Improbable was in breach with the ToS update. According to devs knowledgeable of Improbable's tech, Improbable has been in breach of the Unity ToS for more than a year. Negotiations on licensing probably broke down (as in, Improbable refused to pay the fee Unity was asking for a license), and so Improbable decided to publicly vent and mislead devs.
Regardless, the ToS are incredibly vague on what is/is not allowed, even for developers that have nothing to do with Improbable.
Finally, the $25M comes from the already established Unreal dev grant fund - it's not "new" money, they just rebranded a portion of the fund in a PR stunt.