Yes, all the log statements use ms.I take it the "ChangeCellGrid Took xx.xxx" messages are in milliseconds?
I wouldn't call it smooth yet, 100ms delay is still a noticable dip in framerate down to 10 fps, even if it only lasts a split second.
Just had the idea of using the preloader to speed up save game loading. While the main thread is parsing through the save game, use the background thread to preload the cell that the player will spawn in. That won't account for preloading objects that are only present in that savegame, but it probably doesn't matter. Currently the save game header doesn't include the cell that the player is in, only the name of the cell or the region's name. So it looks like I'll have to make a tweak to the save format first.