As far as I can tell, the issue with campaigns is due to the way they're loaded. I notice that campaigns are loading the entire chat history every time, and for every player. For games that are run in chat as text this can quickly make the game unloadable (especially if people use it as a chat room outside of game time!).
There is no reason for the campaign to load the entire chat history each time they are loaded - especially as the players cannot even access the history without using a link and opening another page (which then has to load the entire history again). Oh, and even if they do load another page to access the full chat history, then this is also very slow to load due to the way the page is constructed.
There is significant room for optimization of the way the chat data is handled in the web pages - and there is certainly almost no reason why any page should load the entire chat history of the campaign when loaded. Even a complete chat history link should be split over several pages (or dynamically loaded as the user scrolls to the end of the page). Of course in this case a search functionality would be nice to get to the right page...but I digress.
Please fix this - it's making Roll20 unusable for chat-based games!
Thanks,
-- Pete.