Hi,
My advice would be to use a randomly generated UUID. Hashing was only ever intended as a backwards-compatibility scheme that would let the IF Archive and other third parties come up with a unique ID for old games whose authors wouldn't ever be updating them to add the Treaty bibliographic information. For anything new, a UUID is always preferable, because it's unambiguous that the UUID is actually intended to be the public identifier for the work for database indexing purposes.
If you go this route, your thorny questions (2) and (3) become moot - more reasons to prefer a UUID!
As for (4) and (5), if your game is distributed as a download for local installation, then the "story file" could probably be considered to be the ZIP file or whatever other type of container format you're using to distribute the underlying web assets. In that case, I think the best approach might be to include a Babel.xml file with the bibliographic data. That would necessarily include the UUID, and would also serve as the library card file.
(To the Babel folks: would it be worth adding something official like this to the spec? It might not be a common enough case to warrant inclusion.)
If your game is deployed for on-line play only and isn't ever distributed for local installation, the question of embedding a UUID and library card data is basically not relevant. The purpose of the embedded data is to allow tools working with your distributed files to mechanically extract the information. If you don't distribute your files, this scenario never arises, so there's no need to embed anything.
However, perhaps you could create the Babel XML file and provide a link to it on your home page (inconspicuously, as it would only be confusing to most people).
Or better yet, maybe Babel should explicitly define a <link> type for this? That seems like a logical extension of the embedded Babel data idea to on-line games - if you have Babel data, you put a <link type="interactive-fiction-babel"> in your game's front page. That would create a well-defined way for tools to mechanically find the information, but create any visible clutter for users.
Regards,
Mike