Bug (685959) is indeed the problem. The bug is fixed in gtk+ 2.24.14. However, 2.24.14 won't compile for win32 (I hope anyone reading my question and answer realizes at this point that GTK is no longer a reasonable choice or cross-platform development).
I applied this patch to 2.24.10 and successfully compiled the result. With my new runtime files it seems to be working.
I used the instructions here to build GTK on Windows with MinGW: http://ingar.intranifty.net/devenv/mingw32/gtk.html
The 32-bit build will fail around gtk-update-icon-cache unless you run the msys shell as administrator. For the 64-bit build, you need to rm gtk/gtk.def before running make. Build and install gtk+ by executing the following commands:
cd $LOCALBUILDDIR && \ wget -c http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.10.tar.xz && \ xz -d -c gtk+-2.24.10.tar.xz | tar xv && \ cd gtk+-2.24.10 && \ ./configure --prefix=$LOCALDESTDIR --with-gdktarget=win32 \ --with-included-immodules=ime --disable-debug --disable-gtk-doc && \ make && \ make install
I know this isn't a "workaround" like I asked for in my question, but over 6 months without an answer tells me there is no workaround except fixing the bug in the runtime...