It looks like the gui menu runs through timer_check to check for any emacs timers, and when the clipmon timer is triggered, it checks the x selection, which also runs through timer_check. Putting the clipmon timer through that routine twice might be throwing things off - it seems like it's the second pass which get stuck in an endless loop.
I'm not positive about that though - I'm still learning my way around the system and gdb. I'll keep tracing through it - I've been wanted to learn more about Emacs internals so I could work on them someday, and this looks like as good a place as any to start...
Brian