I've also noticed that after the questions load, it still takes additional time to load the images, it might take up to a minute just to load one small image (less than 30kb), if there are multiple images on the quiz it can take a considerable time.
The quiz chooses a set of 50 random questions from 8 different question sets. This quiz has been in the system since we first put our Moodle site up about 2.5 years ago and it wasn't ever a problem. I restored a backup of the database from a year ago and it doesn't have any of these problems.
Other quizzes load ok, they aren't the fastest but nothing to complain about. If I create a new quiz that has the same random question set, it also loads slowly.
Our server is a virtual server with an Intel Xeon 2.53 GHz Dual-Core 64-bit. It uses a Microsoft SQL database on Windows 2008.
I'm not sure if this could be related to the problem, but our database reached it's max size in MSSQL because some of the question_attempts tables were so big. I was able to reduce the size of the database by exporting those tables to an empty database, and then reimporting them back into the original database. I figured this was reducing the size by re-indexing the tables or something. I first did this about a year and a half ago and it didn't seem to cause a problem, I have done it a couple times since then.
Anyone have any ideas? Let me know if you need any more information.