The main issue with madness - it is scripted (hardcoded) status. Since it modifies AI behaviour, you cant have the full control and modify it the way you want with status entrys only.
There are alot of simillar statuses (maybe will make a full list of "pain in the a**" statuses one day), but the general recomendations are +- the same:
1)*easyUse: Do not change it, use the vanila version. Give any extra properties with additional custom statuses.
2) If you apply it with scripting - make sure there is a _Causee entry
3)*theHardWay: If you want to twek the status itself - best way would be to create a brand new status from scratch, using scripting to repeat it's functionality.
4)*theHardWay: Use search to find all refferences to status in scripts and tweak it there.
If you want to apply status without an armor check, you can use scripting. Example API (story script):
ApplyStatus((GUIDSTRING)_Object, (STRING)_Status, (REAL)_Duration, (INTEGER)_Force, (GUIDSTRING)_Source)
From wiki: "If _Force is 1, normal status immunities are ignored (e.g., a status that is normally blocked by physical armour, can be force-applied to ignore the fact that the target may have physical armour left). If it is 0, normal status immunities apply. "
Hope that helped.