OK... first... Under Tools | Options | Engines | NameMapping there is an option "Use extended find when possible". My recommendation is that this should always be turned off. Extended Find is a useful feature but, if used too much, it can cause the problem you're experiencing. We use Extended Find, but only when we really have to.
So, after checking that, look at your NameMapping in the Mapped Objects panel. Any objects that have the Extended Find option checked, you should consider whether it is strictly necessary. Basically, if it has Extended Find check, there is an indepth search of the DOM that is done from the parent object down the tree, searching until it finds the object. The deeper the object is in the DOM, the longer this search can take.
My recommendation: if something is marked with "Extended Find", after turning off the option mentioned above, map ALL the ancestor objects between the original parent and the target child. Then drag that target child to be in it's proper place in the hierarchy and uncheck the "Extended Find" option.
This is an "elbow grease" solution... and it's the best I've found. I've already put in a feature request to have the "extended find" by default option turned OFF to prevent exactly what you're running into. Again, if you NEED extended find for some reason, you can turn it on and off manually while mapping components but I wouldn't recommend using it for ALL mappings.