This posting is older than 6 months and can contain outdated information.
Phew, you're going to great lengths there ;-)
But basically this (pseudocode) should work:
... 
showmenu .... 
...
on menureturn(hiddenID, menuname)
if menuname is "mainmenu" then 
if hiddenID is music then 
showmenu .... menu name "music" 
end if 
end if
if menuname is "music" then 
if hiddenID is artists then 
showmenu .... menu name "music.artists" 
end if 
end if
if menuname is "music.artists" then 
.. 
end if
end menureturn
Multiple on menureturn/end menureturn blocks of course will cause 
problems. But using "menuname" as a way to distinguish between 
several different menus should work just fine. Please let me know, if 
you find any issues with that methodology, so I can have a look at 
and eventually fix any existing problems.
Regarding the 30 seconds to build lists of albums, tracks, etc: 
welcome to the lightspeed AppleScript support in iTunes ;-) .. Remote 
Buddy avoids AppleScript for iTunes browsing whenever possible for 
this very reason.
Best regards, 
Felix