Yeah...there´s always a catch between fast loading times and high quality-content
My best advice is to create a special pause-event for such things, like an interesting welcome-message, welcome-image etc. which keeps the viewer busy and interested for a few seconds while the tour is doing it´s magic in the background. Another way would be to load a bunch of small files (multiple copys of one image i.e.) for a certain amount of time (10 secs i.e.) and then count the number of images that were be loaded during that time. Each loaded image could add +1 to a var in the onloaded-event and the final number would than be a usable speed-indicator. A technique I use for the background loading of a 3D-map inside krpano btw
I did some research too some time ago, but detecting the users connection speed requires always some kind of data to be loaded in the background. There is no direct detection which delivers such infos - as far as I know.
Good luck
Nupsi