OK, I'm getting to the end of my chain.
2002 WRX. Put a new engine in after overheating the old one. Stupid me. Idled a bit rough from the start, but calmed down a bunch after chasing down stupid vacuum leaks. Still idled a bit rough, but nothing big. It threw one cylinder 3 misfire within the first 20 or so miles, while idling in a car wash. Reset it, nothing came back. Until recently.
As the weather has gotten colder, it's gotten worse. The colder it gets, the more likely it is to throw a misfire code, and the misfires have progressed to all four cylinders. The codes only show up when the car is cold, but the rough idle remains even when warm.
Since this is the car I want to "just work" and there's been a family emergency where I need to jet back and forth between the city and my folks place, I sent it to a reputable shop last week.
They did a "smoke test" and did not find any vacuum leaks. They told me they could see on their live OBD-II reading that there were misfires on all four, but said they could see no reason why. Fuel good, spark good. They (and another shop that looked at it superficially as a favor) said my "fuel trims" were spot-on. Whatever that means. After checking that the timing was set properly (it was), they threw up their hands and said it must be a computer glitch, take it to a dealer.
Above idle, the engine runs just great. I've put about 1300 miles on it now, no codes ever when I'm not idling it cold. It got 28mpg on one light-footed all-highway trip back when it was warmer, but the last driven-like-a-GRM-reader tank was 19mpg.
The coil packs are original to the car (113k) AFAIK. The plugs are new, OEM, properly gapped. I did not check the valve lash (stupid) when I put the reman'd heads back in, but the Subaru shop that sold it to me assured me they were ready to just drop on (and the car makes good power). The battery is five years old, I think. The O2 sensor is new with the engine, the non-generic one, top-of-the-line.
I have my hunches, but what does the collective wisdom think? What are my next steps in diagnosing this?