So, do I understand that there's no actual hang
demonstrated (infinite loop), but just an unwelcome
long time spent doing a large amount of work that
would be better done by something else, or in some
other way?

Does moving to Tcl 8.5 or 8.6 improve matters?