The thing that is most amazing to me is how differently I viewed the "good" and "bad" behaviors. Like you, a brief period of "good" behavior would send me jumping to the conclusion that he was getting better/doing better/trying, and thus I should stay. That "3 minutes of not being an azzhole" was just so tremendously significant!
But the hours/days/weeks/months/years of BEING an azzhole, somehow THAT did't count. That didn't signal anything to me. There was a hugely disproportionate amount of weight put on those blips where things were good.
A couple of drops of rain every few days doesn't end the drought.