Also die Version mit dem Loop, den Du nach zwei Posts quasi abbrichst, ist schon ganz gut. Als Verbesserung schlage ich vor: Nur die ersten beiden Posts aus der DB auslesen. Dafür den Loop so modifizieren (ganz oben, auf jeden Fall vor if have_posts):
Soll der Link dann auf den vorletzten Beitrag zeigen oder auf eine Seite, die alle Beiträge ab dem vorletzten enthält? Für ersteres kannst Du im Loop ganz einfach the_permalink() nutzen, das baut Dir einen korrekten Link auf den Post, egal wie Deine Permalinkstruktur aussieht.
Zu Problem Nummer zwei (Am Ende eines Jahresarchivs auf den Beginn des vorherigen Jahres verlinken): Naja, Du verlinkst halt einfach auf das entsprechende vorherige Jahresarchiv. Ähm, mal kurz im Codex gesucht... Das sollte so aussehen:
Die Jahresarchive kannst Du bei Bedarf auch andersherum sortieren. Normalerweise würden ja die neuesten Beiträge oben stehen (also absteigend sortiert). Wenn Du es gerne aufsteigend hättest kannst Du auch hier die Query modifizieren:
Das würde jetzt nur die Jahresarchive umdrehen, so einfach oben in die archive.php schreiben (nicht archive*s*.php, die macht was anderes, falls Dein Theme die überhaupt hat).