Eureka!
If you want to change traits of a character, you absolutely need to load the DualDialogue template ( You can find it under ...Mods/Story/Keywords) and from there you can safely launch :
ACTION SetCharacterFlag("GLO_IncreaseTrait",1)
***Replace the word Trait with the trait name***
I will include an example in my project template that is coming soon (Check project template thread I have created)
Long explanation below
For some rather intriguing reasons, the function CharacterAddTrait() Can simply not be used stand "alonely" (use at your own risk *Infinite loop*). Also, using the SetCharacterFlag("GLO_IncreaseObedient",1) (Or any other trait) will cause the game to fall in an infinite loop if this is not launched from a Dual Dialogue.
Every single trait change that occurs (I believe) occurs because of a DUAL DIALOG was launched. EVEN if the player is alone, a DUAL DIALOG will be launched, and in the DUAL DIALOG, some checks are done to make sure that the other player is in range and whatnot.