If you set k = \frac{1}{3} - \epsilon, then if fraction 2\epsilon of validators are offline and the attacker causes a fork right before k, then honest validators would not be able to cause justification, as they would only have (\frac{2}{3} + \epsilon) * (1 - 2\epsilon) \approx \frac{2}{3} - \frac{\epsilon}{3} validators slots, correct? So you would want to set k to equal something like \frac{1}{6}?
But then what is the total number of (offline honest + attackers) that FFG can survive with this modification?
Can we try to mitigate this by borrowing techniques from 99% fault tolerant synchronous consensus? For example, have a mechanism where the maximum time at which you can switch over depends on the percentage of validators that you see switching over, so if you reach one validator on time then that validator would support the new chain and their added signature increases the time limit before which other validators would accept the new chain.
Also, what do you think of the “switch at most once every three epochs” technique proposed in Beacon chain Casper mini-spec ?