I'm at my dorm now, and there are 2 things here.
1) My external hard drive: with my large collection of music, your script simply *rocks!!*. It finds most songs that are suggested by Last.FM. It even "surfs" through several genres after a long time of usage, just too give me some different things for me not to get bored. I guess that's maybe not directly the intention, but I really think it can be very cool!
2) Slow internet connection: unfortunately your script connects 2 times to Last.FM per song (well, that can't be changed), and with the sometimes very slow internet connection here (at my dorm before 19h = 7pm), MediaMonkey can lock up for a long while until the xml retrieval times out and fails, and the script continues.
At home, that's never a problem, but I have heard that some people on this forum have very slow internet access, so maybe this might be a problem for them.
Therefor, I suggest you to try to get the xml info through an asynchronous connection. (you know, the "xmlDoc.async = TRUE" thing). That would make MM much more stable (as it actually should be) but will take some more programming work and multi-threading can be a pain in the axe (or how is it called?
Anyway, I tried your new piece of art and think it's great! Keep up the good work you're doing.