Thank you to Corey and everyone else who is taking the time to confirm my results. Since Alesia asked about my testing methods, here's what I did:
I created a human sorcerer in BG2 and removed Imoen from the party. I used the console to level him up to level 31. The important spell picks were Protection from Evil, Blur, Improved Invisibility, Stoneskins, Sprit Armor, and Protection from Magical Weapons. I used the console to create rings of protection and the ring of Gaxx so I could get his save vs. spell to whatever I wanted by combining effects.
I used the console to spawn 10+ umber hulks. I confirmed in NearInfinity that their confusion gaze is an unmodified vs. save spell. The sorcerer tanked their physical attacks with ProMW and Stoneskins.
The results were what I reported. With a save vs. spell of 1 or 0, the sorcerer was eventually confused. With a save vs. spell of -1, he was able to chain all 7 of his ProMWs and all 6 Stoneskins without becoming confused.
I vaguely recalled reading that Protection from Evil did not actually provide the save bonus, so I decided to test that. With a save vs. spell of 1 and ProEvil, he was again able to chain his ProMWs and Stoneskins without becoming confused.
I then wanted to test a spell with a save penalty, so I consoled in a bunch of vampires. I confirmed in NearInfinity that their domination gaze is a save vs. spell at -2. As with the unmodified save, -1 was the point where he seemed to be immune.
I considered that possibility that the massive spam of gaze attacks might be causing the wonkiness, so I spawned in Koshi, the slaver that wields Celestial Fury. I confirmed in NI that the stun effect on CF has an unmodified save vs. spell. I used Stoneskins only to tank his attacks. The results were the same: 1 or 0 and the sorcerer was eventually stunned, -1 and he was able take 200+ attacks without being stunned once.
I then wanted to know if other saves were similarly odd, so I spawned in a shadow fiend. I confirmed in NI that their paralyzing attack has an unmodified save vs. death. Unlike the save vs. spells, a save vs death of 1 seemed to guarantee success. I did not do much testing with saves vs. death beyond this.
All of the above tests were conducted a non-EE install with the final patch and no mods.
EDIT: I reproduced these results in my current install, which has Fixpack v10, SCS v30, and Tobex.
I then modified umber hulk confusion to have a -4 save penalty and repeated the first test. As Corey predicted, -5 appears to be the magic number to guarantee success.