Sub 500ms? Read the solution, read each project file, read the first level of file and folder names in each project, then show the solution explorer. Anything else can go in a background thread which doesn't block building, running, or opening individual files.
I would like to see where the other 29,500ms are going.