My site gets about 500K uniques a month and I understand your concern. One thing I did to help with congestion was to split my ad server (OpenAds) off onto its own server, and that helped tremendously. So... one server for vBulletin and one for OpenAds.
If you are on the same server, I'm not sure how it would benefit you to redirect people to the forum's main page if the server is overloaded, because the forum index page will be a load too, right? vBulletin has a setting in the config to let you specify a server load level after which users will be told that the server is busy, and to try later. So, any of the products that really sit on vBulletin should be able to use that. I can speak to vBadvanced because thats what I currently use. It is a plug-in to vBulletin, so it uses the same overload tool. I would expect vbPortal to use the same one. I haven't tried vbPortal in several years, but it was pretty "heavy" back then, so I wouldn't recommend it. I think it is also a dead project and hasn't been updated in a long time.
vbDrupal has configuration settings to help with overloading, although I've not tried them. They call it their "Throttle" tool. It lets you automatically scale some things down, and you can do it by user group... so that registered users don't get throttled the same as anonymous users... a nice feature.
I don't know about Joomla, but I would expect them to have similar capabilities.
If you expect a heavy load, you may want to put your CMS on a different server than vBulletin. I am not positive if this can easily be done with vbDrupal because it uses the same database. There are a couple of other vBulletin to Drupal hooks that do it differently and may work better with dual servers.