There are already reasons to announce a little earlier. Depending on how you do it, this can be a great way to start a dialogue with fans, to see what the game is supposed to be like together. This is often associated with early access, but in my opinion it doesn’t always have to be that way. Kerbal Space itself is a great example of what a developer can achieve through dialogue with fans. Subnautica is another game that has been largely transformed from the original developer’s idea into something much better.
There are different approaches to development, and ultimately developers have to choose how they approach it. Announcing things at the last minute is no guarantee of success either. Fallout 76 was announced at the last minute, but that match had just broken. Or you have a game like Evolve, which also had a very short marketing campaign, but because of that not many people knew about it. Evolve faltered despite being a game that was actually quite well laid out. Of course there were other factors, but building a little longer towards release definitely wouldn’t hurt.
Conclusion: If there was a magical method that was best, we would have already found it. As a consumer, you just have to stick to the basic golden rule: There are no pre-orders. Moreover: buy the game and expect to get what it is now. Promises about the future should be completely ignored.