This problem is quite complicated to calculate exactly because in the end it evolves into a Markov Chain, the convergence speed of which can't be conclusively answered.
Caculating the probabilities
Assuming the Fighter is not a Wildcard, then the chance to hit normally is 4/10, and the chance to get a Raise is 2/10. Since it's only one die, if it explodes doesn't change anything.
If we hit normally, we do 2D6 damage. Of the 36 possible results, 26 deal enough damage to cause at least a Shaken. Of those, 6 get enough damage for a Wound outright, and 6 more can do it with dice exploding (6-1, 6-2, 6-3). 6-3 always manages, 6-2 needs a 2 at least, 6-3 a 3. Therefore, the total chance for a direct wound is:
6/36 + 2/36 + 2/36 * 5/6 + 2/26 * 4/6 = 11/36
and thus the chance to merely Shake is 15/36
If we get a Raise, our damage increases to 3D6, for a total of 216 different results (before Explosions). 206 of those cause at least a Shaken, 135 of them a Wound without explosions. There are 9 results that do it with explosions (6-2-1 in multiplicity 6, always reaches 10 damage and 6-1-1 in multiplicity 3, which needs a 2 on its explosion). Therefore, total chance to cause a wound directly is:
135/216 + 6/216 + 3/216 * 5/6 = 861/1296
And the chance to merely Shake is 375/1296
When being Shaken
Whenever the opponent is Shaken, there is a chance they recover before the next hit. Assuming for a moment the turns always happen alternatively (because otherwise the math bloats even more), starting from a Shaken state, there are two possibilities:
A) the bandit recovers before the hit, meaning the chances are the same as before
B) the bandit does not recover, thus any result that Shakes instead causes a Wound.
p(Shaken->Wound) = p(Recover) * p(Normal->Wound) + (1-p(Recover)) * (p(Normal->Wound) + p(Normal->Shaken))
p(Shaken->Shaken) = p(Recover) * p(Normal->Shaken) + (1-p(Recover)) * p(Normal->Normal)
p(Shaken->Normal) = p(Recover) * p(Normal->Normal)
With a Will of D6, the Bandit has a 50% chance to recover, to thankfully we just have to take the average of the two results.
The resulting Markov Chain
If we put it all together, we get a network of three states for the Bandit to be in at the end of a round: Normal, Shaken, Wounded, and know the transition probabilities for each:
- to Normal: 10188/12960
- to Shaken: 786/12860 (4/10 * 15/36 + 2/10 * 375/1296)
- to Wounded: 1986/12960 (4/10 * 11/36 + 2/10 * 861/1296)
- to Normal: 5094/12960 (1/2 * 10188/12960)
- to Shaken: 5487/12860 (1/2 * (786 + 10188)/12960)
- to Wounded: 2379/12960 (1/2 * (1986 + 1986 + 786)/12960)
And at this stage, unfortunatly, accuracy ends, because the exact speed at which a Markov chain converges to its steady state is still an open problem in mathematics.
It is however known that a good upper bound is given by the second-largest Eigenvalue of the probability matrix, which is the speed of the exponential decay towards the final state, with the a formula of C*λ2^n
Plugging this into the average value of an exponential distribution gives us an average turn length of -1/ln(λ2)
Numpy gives me a λ2 of 0.84292938, corresponding to an average turn time of 5.85233068601 turns until the bandit is defeated.
The Simulation Approach
It should be noted, however, that this value is, while more mathematically rigorous, not much more helpful than your quick calculation, because Savage Worlds combat is very swingy, and the variance on that value is extreme. In about 15% of cases, the fight is over with the first strike, for example.
And given that the correct convergence speed of the Markov Chain would need to be simulated to start with, at this point it would be easier to just simulate the entire combat including the bandit hitting back. Which, thankfully, Zadmar actually has done:
Inputting the following 2 Statblocks:
gives us the result:
There were 10000 fights. Fighter won 8121 of them, while Bandit won 1879.
The shortest fight lasted 1 round, while the longest lasted 22 rounds.
The average duration of a fight was 2 rounds.