I posted that we weren't having any more problems with Ninja going potty outside his litterbox. Except, we were. I just hadn't discovered it yet. He got our dirty laundry again.
Even though I was 99% certain this was a behavioral issue, I took him to the vet to be checked for a bladder infection. Better to err on the side of caution. The vet even agreed that it sounded behavioral. We did put these cats through a month of hell, after all.
Poor Ninja had to stay overnight at the vet's office, as he had nothing in his bladder when I brought him in. It broke my heart to leave him there, as he was so scared. But I'm so glad I did because when the vet called the next morning with test results, they were positive for UTI.
My Ninja was sick and just letting us know he didn't feel well by going potty in the wrong places.
As weird as this may sound, I was actually very happy to hear he had a bladder infection. That can be easily treated, which will then stop the behavior. If he was acting out from stress, well, that would have been a much more difficult thing to fix.
He's been on an antibiotic for 3 days now, and he's obviously feeling better already.