You don't make any mention of the technique you're using, so there's some necessary vagueness here.
If the actual image is identical, then yes you should just reuse the one file.
If possible, put both strings directly in the markup and then use CSS/Javascript to display them as and where needed. That would give you both predictable crawlability, and maximize styling options. (You also didn't specify whether your text has markup, for example, which is troublesome in attribute values.)
Using the alt
attribute is not appropriate for what you're doing here, as it's intended to actually replace the image if it doesn't load. It should describe the actual content of the image, not be some kind of title for it or whatever. Technically, the alt text is the image, if the visual representation happens to not load. From that perspective, changing it in different cases makes little sense.
If you want, though, you could stash the shorter overlaid text in the title
attribute of the image instead of its own element; that seems relatively appropriate to your actual use case.
Support for longdesc
is so poor I'm not aware of a single reference saying to use it for anything. It's also not even in the HTML5 spec, if that's a concern; you don't say what doctype you're using.
If you are using HTML5, then the longer description could be stored in a custom data attribute.