[proofplan]
We compare the relevant minors on their common ground set $E(M)\setminus\{e,f\}$. Two deletions commute directly from the definition of deletion. For contractions, and for one deletion together with one contraction, we compare rank functions on an arbitrary subset $A \subset E(M)\setminus\{e,f\}$ using the rank formula for contraction; the loop convention makes the same formula valid even when the contracted element is a loop. Finally, equal rank functions determine the same matroid, and the general normal form $M/C\setminus D$ follows by repeatedly swapping adjacent operations until all contractions precede all deletions.
[/proofplan]
[step:Compare two successive deletions by their independent sets]
Let $E := E(M)$ denote the ground set of $M$. Let $\mathcal{I}(M)$ denote the set of independent subsets of $E$. The deletion $M\setminus e$ has ground set $E\setminus\{e\}$, and its independent sets are precisely the sets $I \in \mathcal{I}(M)$ satisfying $I \subset E\setminus\{e\}$.
Therefore the matroid $(M\setminus e)\setminus f$ has ground set $E\setminus\{e,f\}$ and independent sets
\begin{align*}
\{I \in \mathcal{I}(M) : I \subset E\setminus\{e,f\}\}.
\end{align*}
The same description is obtained for $(M\setminus f)\setminus e$. Hence
\begin{align*}
(M\setminus e)\setminus f = (M\setminus f)\setminus e
\end{align*}
under the identity map on $E\setminus\{e,f\}$.
[guided]
Deletion simply restricts the matroid to a smaller ground set without changing which remaining subsets were independent in the original matroid. Let $E := E(M)$ and let $\mathcal{I}(M)$ be the independent-set system of $M$. After deleting $e$, the available elements are $E\setminus\{e\}$, and a subset is independent in $M\setminus e$ exactly when it was already independent in $M$ and avoids $e$.
Now delete $f$ as well. A subset $I \subset E\setminus\{e,f\}$ is independent in $(M\setminus e)\setminus f$ exactly when $I$ is independent in $M\setminus e$, which is exactly when $I \in \mathcal{I}(M)$. Since $I$ already avoids both $e$ and $f$, this gives the description
\begin{align*}
\mathcal{I}((M\setminus e)\setminus f) = \{I \in \mathcal{I}(M) : I \subset E\setminus\{e,f\}\}.
\end{align*}
Performing the deletions in the opposite order imposes the same two conditions: avoid $f$, avoid $e$, and remain independent in $M$. Thus
\begin{align*}
\mathcal{I}((M\setminus f)\setminus e) = \{I \in \mathcal{I}(M) : I \subset E\setminus\{e,f\}\}.
\end{align*}
The two matroids have the same ground set and the same independent subsets, so they are equal under the identity ground-set map.
[/guided]
[/step]
[step:Compute the rank function after two contractions]
Let $r_M$ denote the rank function of $M$. For a matroid $N$ with rank function $r_N$ and an element $g \in E(N)$, the contraction rank formula on a subset $A \subset E(N)\setminus\{g\}$ is
\begin{align*}
r_{N/g}(A) = r_N(A\cup\{g\}) - r_N(\{g\}).
\end{align*}
If $g$ is a loop in $N$, then $r_N(\{g\}) = 0$ and $r_N(A\cup\{g\}) = r_N(A)$, so this formula agrees with the stated loop convention $N/g = N\setminus g$.
Let $A \subset E\setminus\{e,f\}$. Applying the contraction rank formula first in $M/e$ and then in $M$ gives
\begin{align*}
r_{(M/e)/f}(A) = r_{M/e}(A\cup\{f\}) - r_{M/e}(\{f\}).
\end{align*}
For the first term,
\begin{align*}
r_{M/e}(A\cup\{f\}) = r_M(A\cup\{e,f\}) - r_M(\{e\}).
\end{align*}
For the second term,
\begin{align*}
r_{M/e}(\{f\}) = r_M(\{e,f\}) - r_M(\{e\}).
\end{align*}
Substitution and cancellation give
\begin{align*}
r_{(M/e)/f}(A) = r_M(A\cup\{e,f\}) - r_M(\{e,f\}).
\end{align*}
Interchanging the roles of $e$ and $f$ gives the same formula:
\begin{align*}
r_{(M/f)/e}(A) = r_M(A\cup\{e,f\}) - r_M(\{e,f\}).
\end{align*}
Thus the two matroids have the same rank function on the common ground set $E\setminus\{e,f\}$.
[guided]
The point of using ranks is that contraction has a clean rank formula. Let $r_M$ be the rank function of $M$. If $N$ is any matroid, $g \in E(N)$, and $A \subset E(N)\setminus\{g\}$, contraction by $g$ satisfies
\begin{align*}
r_{N/g}(A) = r_N(A\cup\{g\}) - r_N(\{g\}).
\end{align*}
This remains valid under the loop convention. Indeed, if $g$ is a loop in $N$, then $r_N(\{g\}) = 0$, and adding $g$ to a set cannot increase rank, so $r_N(A\cup\{g\}) = r_N(A)$. Hence the formula becomes $r_{N/g}(A) = r_N(A)$, which is exactly the rank function of $N\setminus g$ on $A$.
Now fix an arbitrary subset $A \subset E\setminus\{e,f\}$. We compute the rank of $A$ in $(M/e)/f$. First apply the contraction formula inside the matroid $M/e$, with the element being contracted equal to $f$:
\begin{align*}
r_{(M/e)/f}(A) = r_{M/e}(A\cup\{f\}) - r_{M/e}(\{f\}).
\end{align*}
Each term on the right is now a rank in $M/e$, so we apply the contraction formula again, this time for contraction of $e$ in $M$. Since $A\cup\{f\}$ is a subset of $E\setminus\{e\}$, we have
\begin{align*}
r_{M/e}(A\cup\{f\}) = r_M(A\cup\{e,f\}) - r_M(\{e\}).
\end{align*}
Similarly,
\begin{align*}
r_{M/e}(\{f\}) = r_M(\{e,f\}) - r_M(\{e\}).
\end{align*}
Substituting these two identities into the previous display gives
\begin{align*}
r_{(M/e)/f}(A) = \bigl(r_M(A\cup\{e,f\}) - r_M(\{e\})\bigr) - \bigl(r_M(\{e,f\}) - r_M(\{e\})\bigr).
\end{align*}
The two occurrences of $r_M(\{e\})$ cancel, leaving
\begin{align*}
r_{(M/e)/f}(A) = r_M(A\cup\{e,f\}) - r_M(\{e,f\}).
\end{align*}
The same computation with $e$ and $f$ interchanged gives
\begin{align*}
r_{(M/f)/e}(A) = r_M(A\cup\{e,f\}) - r_M(\{e,f\}).
\end{align*}
Since $A$ was arbitrary, the two rank functions agree on every subset of the common ground set $E\setminus\{e,f\}$.
[/guided]
[/step]
[step:Compute the common rank function for one deletion and one contraction]
Let $A \subset E\setminus\{e,f\}$. In $(M\setminus e)/f$, the contraction formula applied in $M\setminus e$ gives
\begin{align*}
r_{(M\setminus e)/f}(A) = r_{M\setminus e}(A\cup\{f\}) - r_{M\setminus e}(\{f\}).
\end{align*}
Since deletion of $e$ does not change ranks of subsets contained in $E\setminus\{e\}$, this becomes
\begin{align*}
r_{(M\setminus e)/f}(A) = r_M(A\cup\{f\}) - r_M(\{f\}).
\end{align*}
On the other hand, in $(M/f)\setminus e$, deletion of $e$ after contracting $f$ does not change the rank of $A$, so
\begin{align*}
r_{(M/f)\setminus e}(A) = r_{M/f}(A).
\end{align*}
Applying the contraction formula in $M$ gives
\begin{align*}
r_{(M/f)\setminus e}(A) = r_M(A\cup\{f\}) - r_M(\{f\}).
\end{align*}
Thus the rank functions of $(M\setminus e)/f$ and $(M/f)\setminus e$ agree on every subset of $E\setminus\{e,f\}$.
[/step]
[step:Conclude equality from equality of rank functions]
Let $N_1$ and $N_2$ be two matroids on the same finite ground set $S$, with rank functions $r_{N_1}$ and $r_{N_2}$. If $r_{N_1}(A) = r_{N_2}(A)$ for every subset $A \subset S$, then $N_1 = N_2$, because a subset $I \subset S$ is independent in $N_i$ exactly when
\begin{align*}
r_{N_i}(I) = |I|.
\end{align*}
Applying this observation to the common ground set $E\setminus\{e,f\}$ proves
\begin{align*}
(M/e)/f = (M/f)/e
\end{align*}
and
\begin{align*}
(M\setminus e)/f = (M/f)\setminus e.
\end{align*}
Together with the deletion calculation, this proves the three asserted pairwise commutation identities.
[/step]
[step:Move all contractions before all deletions in an arbitrary finite minor sequence]
Let a finite minor sequence from $M$ be given. Define $C \subset E$ to be the set of elements contracted in the sequence and $D \subset E$ to be the set of elements deleted in the sequence. Since an element is removed from the ground set after it is first deleted or contracted, the sets $C$ and $D$ are disjoint.
If a deletion of an element $e$ occurs immediately before a contraction of a distinct element $f$, the identity
\begin{align*}
(M\setminus e)/f = (M/f)\setminus e
\end{align*}
allows these two adjacent operations to be interchanged without changing the resulting matroid. Repeating this adjacent interchange moves every contraction to the left of every deletion. The identities
\begin{align*}
(M/e)/f = (M/f)/e
\end{align*}
and
\begin{align*}
(M\setminus e)\setminus f = (M\setminus f)\setminus e
\end{align*}
show that the order among the contractions and the order among the deletions do not affect the final matroid. Hence every finite minor sequence has the form
\begin{align*}
M/C\setminus D
\end{align*}
for disjoint $C,D \subset E(M)$, independently of the order of the individual contractions and deletions. This completes the proof.
[/step]