Very interesting, though I think there's an error in the formula for P(Attacker wins) given Attacker mined previous block.
The correct formula is: 1 - (1 - Z)*exp(-Z*X/600)
Consider C as the random variable for time of next block in the attack scenario (i.e., X seconds of Attacker mining solo, followed by all miners competing should process go past X seconds). Then we have:
P(A wins) = P(A wins | C <= X)*P(C<=X) + P(A wins|C>X)*P(C>X)
Which simplifies to above formula.
The solid lines are the corrected values, and dashed are original:
https://m.primal.net/Lfvz.png
In particular, the needed delay to effectively double hash for slow blocks for the given scenarios changes to:
1% attacker - 10 minutes (instead of 7)
5% attacker - 11 minutes (instead of 8)
10% attacker - 12 minutes (instead of 9)
20% attacker - 14 minutes (instead of 12)
Please, double-check my math, of course.