FWIW, after assuming it was the evaporator and taking the whole dashboard apart to verify, it turned out not to be a dirty core like I thought. In fact, the core was in quite good shape! I ended up using a foaming cleaner, which completely fixed the problem for about 8 months. I now apply the foaming cleaner regularly every 6 months as a preventative measure.
I tried several brands of foaming cleaner, and Nextzett Klima Cleaner is by far the best IMO. No added perfume, you only need one can to completely fill the evaporator & blower area, and it's got a long "pipe" nozzle that puts the foam right into the evaporator. You do have to drill a very small hole in the duct to inject the foam, but it's way, way less problematic than I was worried about; a simple hand drill and ~1/8 in (total guess there, read the instructions!) bit does the job. You can cover it back with a piece of tape afterwards; I personally fill it with a lump of poster putty I can take off and re-use.