For 1, once you get either a $7$ or an $8$, you know the result of the run. Any rolls we make subsequently will not affect the outcome, so we might as well ignore them. As we roll $7$ or $8$ with probability $1$, to find the chance that a $7$ is last we just add them up.
2 is the more subtle point. If you like thinking of Markov processes, we have one with just three states. You have a start state and two ending states. If you throw a $7$ you move to one end state. If you throw $8$ you move to the other end state. If you throw anything else, your return to start. We are interested in the chance we end at $7$. This is the chance of $7$ given that we threw either $7$ or $8$. As the cycles back to start leave us in the same place, we can ignore them.
No need to apply brute force. Let's calculate the probability that the highest die is $k$ when $n$ dice are thrown. Let's name this probability $P_n(h=k)$
We know that $P_1(h=k) = \frac16, \;\forall\ k \in\{1,2,3,4,5,6\}$
What if we throw two dice? To find $P_2(h=6)$ it's easier to calculate the complementary probability that the highest die is not $6$.
$$P_2(h<6) = \left({\frac56}\right)^2 \implies \\
P_2(h=6) = 1- \left({\frac56}\right)^2$$
In general for any $n$: $$P_n(h=6) = 1-\left({\frac56}\right)^n$$
Similarly: $$P_n(h<5) = \left({\frac46}\right)^n \implies\\
P_n(h=5) = 1- \left({\frac46}\right)^n - P_n(h=6)$$
In general for any $n$ and any $i$:
$$P_n(h<k) = \left({\frac{k-1}6}\right)^n$$ and
$$\begin{aligned}
P_n(h=k) &= 1 - P_n(h<k) -P_n(h>k)\\
&=1-P_n(h<k) -P_n(h \ge k+1)\\
&=1-P_n(h<k) - (1- P_n(h < k+1))\\
&= P_n(h < k+1) - P_n(h < k)\\
&= \left({\frac{k}6}\right)^n - \left({\frac{k-1}6}\right)^n = \frac{k^n - (k-1)^n}{6^n}\\
\end{aligned}$$
Just to get a numerical sense, here are the values for $P_3(h=i)$:
$$\begin{aligned}
P_3(h = 6) &= \frac{91}{216} \approx 0.421 \\
P_3(h = 5) &= \frac{61}{216} \approx 0.282 \\
P_3(h = 4) &= \frac{37}{216} \approx 0.171 \\
P_3(h = 3) &= \frac{19}{216} \approx 0.088 \\
P_3(h = 2) &= \frac{7}{216} \approx 0.032 \\
P_3(h = 1) &= \frac{1}{216} \approx 0.004 \\
\end{aligned}
$$
So let's compute the probability of the attacker winning if the attacker throws $3$ dice and the defender $2$. Let's denote the attacker's highest value as $A$ and the defender's highest value as $D$. We want to compute $P(A>D)$.
$$\begin{aligned}
P(A>D) =& \sum_{k=1}^6 P_3(A = k) \cap P_2(D<k) \\
=&\sum_{k=1}^6 P_3(A = k) \cdot P_2(D<k) &&\text{(because throws are independent)}\\
=& \sum_{k=1}^6 \frac{k^3 - (k-1)^3}{6^3} \cdot \frac{(k-1)^2}{6^2}
=& \frac{3667}{7776} \approx 0.471
\end{aligned}$$
Sum computed with WolframAlpha
Interesting to know that the attacker is slightly more probably to lose, even with three dice against the defender's two. Ties going to the defender does the job :)
If the attacker throws three dice and the defender only one then we get: $P(A>D) =\frac{95}{144} \approx 0.66$
Best Answer
This is the coupon collectors problem with unequal probabilities. There is a treatment of this problem in Example 5.17 of the 10th edition of Introduction to Probability Models by Sheldon Ross (page 322). He solves the problem by embedding it into a Poisson process. Anyway, the answer is
$$ E[T]=\int_0^\infty \left(1-\prod_{j=1}^m (1-e^{-p_j t})\right) dt, $$
when there are $m$ events with probability $p_j, j=1, \dots, m$ of occurring.
In your particular problem with two fair dice, my calculations give
$$E[T] = {769767316159\over 12574325400} = 61.2173.$$