Today was a much better day, but still not amazing. Have a vet appointment in the morning.
I discovered through a lot of trial and error that he is refusing to eat every single type of food he has eaten the entire year. It's 5 different varieties across 2 brands. He may take a few bites, but will not eat beyond that. He got by the last few days on an unopened box of a variety he never tried, but he refuses that now also.
In desperation, I reached into the back of the closet and got some food he used to like from about 2 years ago (not expired), but I stopped giving it to him because it's larger shredded chunks of salmon and he was unable to eat it - he'd just lick the broth. I gave him half a small can (1.5oz) at 4am and he ate it in 90 minutes, which is surprisingly fast for him. Another half can at 9am, then 1pm, quarter can at 5pm since I was leaving, then half can at 9pm. He ate 90%+ of each feeding...which comes out to 150 calories. That's double the calories he had yesterday, but less than 75% of what he should be having.
Anyways, he ate much better and has had more energy today. He played with a couple toys and meowed at people for the first time in over a week. He looks like he's feeling better too.
The confusing part is why he suddenly just a few days ago decided to completely refuse ALL food he had been eating for the entire year and starve himself. One of the varieties he had been eating for many years. I would instinctively blame a cat food formula change, but it's multiple brands and it's food I stocked up on months ago...so batches he had been eating from.