While 0scar was right that cooling fan hurts layer adhesion, I've continued to have problems with PETG even with no fan, regardless of temperature. I went looking for advice on the topic, and found a video by CNC Kitchen emphasizing the importance of tuning extrusion rate because of the compressibility of the material in the extruder gear. I'd already found this was a huge issue with TPU and other flexible filaments, so it seemed compelling, and sure enough I just measured that a nominal extrusion of 180 mm only moved the filament by 173.5 mm.
OK. Having extrusion rate off by about 3.5% is plenty to make prints brittle with PLA - I've experimented with this before just to see what would happen. A longer more precise extruder calibration showed more like 4% error. After correcting this, things were better, but I was still getting severe brittleness in some parts of the print but not others.
For a long time, I was able to mitigate most of the remaining problem with reduced speed. I had already reduced travel speeds down from 120 mm/s to 60 mm/s (my normal print speed) because PETG is sticky fast travel over it with the nozzle in contact will tear up the already-printed surface and inhibit adhesion of the next layer. (This seems to be soft PETG acting as a non-Newtonian fluid. Disabling combing, which I'd done for other reasons already with all materials, probably helped with this too.) After also reducing print speed to 40 mm/s, things seemed mostly ok. But I found recently I was still getting serious localized underextrusion in the form of entire lines nearly missing, especially after complex retractions.
I traced this problem down to some extreme extruder speed and jerk, which I'd allowed to mitigate the cost of lots of retractions and linear advance extruder moves. PLA and especially flex materials (where this matters most) can handle ridiculously high extruder speed (150 mm/s) and jerk (25 mm/s "instantaneous" velocity change), but PETG quickly starts slipping in the extruder gear when you do that, and making it easy to "lose" several mm of filament when unretracting. With this fixed (reverted to default 25 mm/s speed and 5 mm/s jerk; 10 mm/s seems to work ok too and performs a lot better), I finally have really strong PETG parts, comparable to PLA.
In the process I also tuned linear advance K factor for PETG, which could impact adhesion. I started with 2.0 which was too high, and dropped to 1.2 which was slightly too low; around 1.4 seems to be ideal. Having this too low could reduce layer adhesion right after acceleration due to localized underextrusion; having it too high could reintroduce extruder gear slippage by putting the filament under more pressure than the gear can reliably hold it to. (If a higher value is needed to get consistent extrusion, this would mean a limit on the speed would also be needed, and going at higher speeds would require an extruder upgrade. For reference, at 0.4 mm line width and 0.2 mm layer height, a K value of 1.2 requires the extruder to be able to compress the filament by about 2.4 mm to print at 60 mm/s.)
TL;DR: Fan completely off, tune extrusion rate to account for compression of PETG in the extruder gear, avoid travel over already-printed material especially at high speeds (limit travel speed to print speed), and keep extruder speed/acceleration/jerk profile conservative.
Update: Almost all of the issues described in this answer seem to stem from the Ender 3's abysmally bad extruder. Some are probably slipping due to really poor grip from the gear; others might be common to all bowden extruders. With the extruder I'm now using (Flex3drive G5) on the otherwise-same printer, I can print PETG at same speed or faster than PLA, with no under- or inconsistent extrusion issues. Cooling does seem to affect layer adhesion, but mostly on very thin (single-wall) parts; otherwise even with fan on at 100% I get better adhesion than I could reliably get with the original extruder. So I think the biggest issue was underextrusion, not over-cooling.