Here's one possibility: use a Bookmark+ desktop bookmark. And then invoke the bookmark from the mode hook.
If you need to do more than what Desktop provides, to set up the buffers and window/frame configuration you want, then you can use a sequence bookmark that combines a desktop bookmark with, say, a function bookmark. IOW, you can use a bookmark to execute arbitrary code, and desktop bookmarks give you a quick and easy way to flip among different desktop setups.