Thanks for the reply. I thought of option #2 but the task didn't warrant the effort. Your observation about process is a good one but in my current special case it's unavoidable.
I was about to try your first suggestion but then option #3 reminded me that all along I hadn't been using my 64-bit geoprocessing, because it only works on background geoprocessing, and that running things in foreground (which I was doing for easier debugging from the message window) might very well be the problem. So I ran in background, and voila, no more GDI objects created. Thanks!