Once the vote is in, and the ledger state is decided upon, the ONLY state that endorsed nodes can now vote on is the next. There is nothing D could do to force a re-vote, and even if he could, all the other endorsed nodes would vote exactly the same as they did before.
Now this bit is important.....the set of endorsed nodes that may vote is deterministic and the vote result for each node is deterministic from the data they have. The determinism is seeded by the transactions for which some resource has been expended to create (fee & challenges).
This is basically the same way that instant-X and zerotime work; there are a set of deterministically selected nodes which vote at the same time on 0 confirmation transactions, majority vote wins.
But of course, this fails completely under sybil attack (I know you said not to mention it, but unfortunately we cannot talk about consensus without it). If I own a majority of validating nodes I can do anything I like: come to a majority consensus on transaction A, then double spend with transaction B by dropping all record of A from my nodes and coming to a 2nd consensus. Or I can completely freeze the chain by censoring all transactions, etc.
Now lets talk about the cost of this attack - in instant-x and zerotime, this cost is a simple constant in the amount of stake you own. In emunie, afair, this cost is completely zero, because of the long con attack.