More or less this. But I think the apparent contradiction comes from the idea of putting God in the context of space-time, by saying he “knows something before it happens” implies that he is constrained by order of events, which I think most theists, including myself, would say he is not.
As an analogy to this, let’s imagine existence as a story where God is the author. Now say that a particular plot point doesn’t really work out, or that a character isn’t developing in the way the the author likes. The author simply goes back and revises parts of the story to correct these things. And so, to those of us reading the finished product, these sorts of interventions, while obvious from the perspective of the author, are absolutely transparent because, from our perspective, they’ve simply always been that way.
Further, I also tend to view God’s knowledge as a combination of several different properties. First, a particular lesson or end can be achieved in many ways. For instance, someone can learn that fire is hot simply be being told, others need to see a demonstration of this fact, and yet another set has to get burned to believe it. To this end, one could say that free will isn’t necessarily a matter of choosing what lessons to learn, but could be more in choosing the manner in which they will be learned. As such, we can have a particular destiny, but that destiny can potentially be achieved in multiple ways.
Second, I also view destiny as more of an emergent property rather than an individual property. For a particular event, all the knowledge we have is about the odds of the various outcomes. However, if we were to repeat that event a sufficiently large number of times, say some odd billion times as for each person alive, then we start to see certain properties arise. That is to say, that a particular lesson may be learned in various ways for various individuals, or perhaps not at all for others, but what is more important is the emergent property of humanity as a whole in our understanding of these various lessons.
How this all works together for me is very well illustrated as if we’re all part of an extremely complex simulation and God is the programmer. Obviously, he is fully knowledgable about the code; he wrote it. And he can take a given set of input, even random, put it into the simulation and be able to make accurate predictions about the outcome. Or, if one prefers, he can simply skip ahead, look at the results, and then go back and analyze how those results are achieved. This is qualitatively no different, from the perspective internal to the simulation, from him being omniscient.