this article could be useful: Right-click is slow or weird behavior caused by context menu handlers http://windowsxp.mvpsdotorg/slowrightclick.htm (the article have two solutions)
The submenu is built up from a list of registry entries. When you have too many options or your registry is too clogged, then it can take while to get constructed. Then the list will be cached, I believe. The construction of the list might be long because it is not just a simple lookup but some references to other registry entries have to be resolved.