Yeah, this is something hard. We try to use some tricks, like opening images at 1/2, 1/4 or 1/8 if they are JPEG, since this is possible and should not take much memory, but 18mpx is quite a lot, even in that case.
How long did you wait? They have a timeout of 30 seconds (maybe more, I didn't write this and last time I checked was long ago). They listen for DBus's NameOwnerChanged and when last user disconnect they'll wait that amount before shutting down. This is in the case user wants to quit Canola for some reason and quickly restart it, you'd not have to wait these daemons to load.
And what kind of solution do you propose? Not clear to me.