This is not a question about the consequence of a 51% on the price nor as to the motivation of the attacker. Let say we don't care that it's not realistic and we don't care that the attacker wouldn't be rational.
Let's just assume an attacker has always 50%+1 (51%) of the mining power.
My understanding is that if I've got 51% of the mining power I can always, probability-wise, rewrite the blockchain to a blockchain with the more PoW. I know there are checkpoints in the codebase with hashes of certain blocks and so I cannot wait decades (or hundreds of years), to rewrite the blockchain from scratch.
I read this statement, which I don't know is correct not:
Crypto Fact: Longest (Bitcoin) Chain with the Most Difficulty Wins , unless a Checkpoint Blocks it.
But can I always rewrite to the latest checkpoint?
When are these checkpoints added and how "far back" do these checkpoints go?
Is there a maximum number of blocks or "rewrite" that nodes can accept hardcoded in the protocol? (where nodes would reject the chain with the most PoW because it "tries to rewrite too many blocks").
What about if I've got 99% of the mining power, is this different than having 75% or 51%?
I mean, theoretically, is there an attack I can mount with 99% that I cannot do with 51%?
This is really just a single question which I think boils down to: Can I always rewrite to the latest checkpoint if I own 51% of the mining power?