Actually, I just got some help from Microsoft, I've been emailing with Scott Guthrie and Clay Compton and I think there is an at least workable solution that I can implement easily enough for the next release.
I will have to declare additional SiteMapProviders in web.config even though they use the same code they will have different names like mojosite1, mojosite2... and then programatically assign them to the menu based on the siteid like "mojosite" + SiteID.ToString()
so maybe I will configure like 10 and have documentation how to add more if needed
http://msdn2.microsoft.com/en-us/library/ms178426.aspx has some good info they refered me to.
Quoting Clay,
"To answer your key question: while it's entirely possible to have more
than one instance of the same SiteMapProvider class in your application
(and the MSDN topic I referred you to shows how to do this
declaratively) there isn't a way to programmatically add providers to
the SiteMap.Providers collection. If it's possible to know in advance
how many logical sites an instance of your portal solution would need to
maintain, the user could configure a separate SiteMapProvider for each
logical site. Is that a workable solution?"
This will definitely be better than having to configure additional IIS apps and less server load as well.
Really I would never recommend hosting multiple customers this way, its more professional to keep them separate but I think its good for multiple sites for the same customer or say for department level intranet sites at a company.
I'll try to get this working soon.
Cheers,
Joe