Why is there a double expression "v'Lo Zachar... va'Yishkachehu"?
Rashi and Targum Yonasan: He did not remember 1 him on the day that he was released, and he forgot him subsequently, until his punishment was completed (and until Hashem performed miracles on behalf of Yosef and he was needed - Rashbam).
Refer to 40:14:152:1*.
Moshav Zekenim: V'Lo Zachar - the butler intentionally did not mention Yosef to Pharaoh, until va'Yishkachehu, i.e. Pharaoh forgot why he was angry at the butler.
Oznayim la'Torah (based on Bereishis Rabah Sof 88): "va'Yishkachehu" implies against his will - The butler actually made knots to remind him to inform Pharaoh about Yosef, but an angel made him forget to do so until Pharaoh dreamt - so that Yosef should be brought before Pharaoh to interpret his dream. 2
Riva, Hadar Zekenim: Even though he was a Rasha, the verse teaches that he was Shogeg, for his merit. All the more so for Tzadikim [the Torah advocates for them]!
Oznayim la'Torah: Had Pharaoh released him now, he would not have subsequently known where he was. In fact, he would probably have returned home to his father.
What did Yosef do to deserve remaining in jail two more years (as the Pasuk states at the beginning of Vayigash)?
Targum Yonasan: He placed his faith in a human being and not in Hashem. 2