Well, the object here put inside the compound predicate but the sentence is correct, though "я буду ждать тебя" is also OK. As well as many other combinations of those words ("Yoda style" etc.)
I am not sure how to "explain" that. It just works.
Though you are recommended to use templates rather than to play with word order as THERE ARE forbidden combinations and sometimes word order can add to the meaning unpredictably.
Yes, the system of grammatical cases encourages free word order by adding info to a word. Even in English "I will for you wait" looks more comprehensible than "I will you wait". I think.