Noch was zu (2), falls Du einen Serializer hast, welche die Fomularfelder für application/x-www-form-urlencoded
prozentkodiert auch deserialisieren kann, wäre es naheliegend, das ganze Formular auf diese Art serialisiert in localStorage abzulegen. Für den Schlüssel empfiehlt es sich, den URL der Seite selbst zu nehmen, aber das ist dann eher eine praktische Frage (evntl. auch die id des Formulars).
Einfach mal machen, da siehst Du am Besten was zweckmäßig ist.
MfG