If n / 2 + 1 generals are dishonest, they survive and don’t win, but their option is optimal.
If n / 2 – 1 generals are dishonest, they survive and don’t win, and honest generals win.
If n / 2 + 1 generals are honest, they survive and win.
If n / 2 – 1 generals are honest, they die.
There are two groups competing against each other (die-hards vs sure-survivors), instead of cooperating. It’s as simple as that and to an external observer it doesn’t matter which of those two teams takes the correct decision about attacking or not.
Generals don’t, are not expected to, and most of the time can’t (even if they might be wanting to), care about the ethical implications of being honest or dishonest, because in their job their priorities are (1) victory, (2) minimize friendly/own casualties, (3) minimize friendly/allied casualties, and (4) minimize foe casualties.
If victory is unlikely, they have to ponder the possibility of not attacking, in order to minimize casualties, not [necessarily] because they are rogue-y, but because it might be the economically correct action to do. If victory is sure to be attained, their best interest is in attacking, more likely they will attack and more likely they’ll win while also minimizing casualties.
That’s one reason massive consensus is key to success of Bitcoin. If consensus decreases, cooperation decreases, hash rate decreases, security decreases, value decreases, hash rate decreases, and negative feedback loop happens.
Byzantine Generals is a two steps problem. You introduce mid steps in between, which is out of the scope of Byzantine Generals.