If anyone wants to see some examples, here’s a PDF from a font company that recreates various historical printing types (including all of Gutenberg’s symbols). Bear in mind these are all modern fonts, though they appear pretty faithful.
This page (in German) has a lot of information (scroll down to ‘Herkunft’) about the origins of the Eszett, including a lengthy quote from Grimms’.
While I can’t really summarize it all here, I think there’s a partial answer to acsenray’s question. Some Germanic words changed from ‘z’ to ‘zz’ to ‘sz’ or ‘ss’. ‘Wasser’ is given as an example (OHG ‘wazzar’). It looks like ‘s’, ‘z’, and ‘3’ (‘3’ denotes the ‘half-z’ that appears in the Eszett; it was also used for ‘z’ historically). They may have been mixed up together by whatever printers decided, especially before orthography was standardized.
To guess at why it survived so long, it may have to do with its use to occasionally denote a different word or a long vowel. From the link I gave above it seems the Rechtschreibreform makes the ß to be now only used after long vowels, partly removing some of the confusion.
There are exceptions, still, for dialect differences (Austrian had more ß’s and Swiss had almost none), and for personal names.
That is to say ‘Litfaßsäule’ (a pillar for ads or announcements) stays the same, but Russia and Alsace change – they’re proper names but not really named after anyone.