Hi,
The control first saves the image data and afterwards sends an <img> element to the browser:
Session[imageId] = GenerateImage(...);
output.Write(CreateImageMap(...));
output.Write("<img src=ImageGen.aspx...");
So, at the time the browser loads the IMG element whose SRC is set to ImageGen, the image bytes are already in the session state. The session data serialization is synchronous from what I can understand (
http://msdn.microsoft.com/en-us/library/aa479041.aspx#aspnetsessionstate_topic3), and it should not be possible the browser to send a GET ImageGen request before the data is actually saved in SQLServer.
Are you by chance creating large diagram images? GDI+ cannot create bitmaps larger than about 3000x3000 pixels, and if your diagrams get larger than that you won't get an image displayed. If that's the case, try setting the MaxImageSize property to make the control split the diagram into several smaller bitmaps.
You might also check if the SQLServer session table has some memory limits set for the serialized session-data fields. If the field max. size seems smaller than the generated bitmaps, try increasing it.
I hope that helps,
Stoyan