the answer is so simple.
In English grammar ,when you ask a question you use the auxiliary as the tense determiner and the main verb is used in the infinitive , hence, have ,not has, for all pronouns .
same as in - where did he go ? not goes .
hope I helped
In linguistics, word tense is marked by the first auxiliary in a verb phrase.
In this case the second sentence can be rearranged to the deep structure: "He did have to wait for how long?", in which case, the word "do" conjugated in past tense acts as the tense marker and renders conjugating "have" unnecessary.
For "George had to wait a very long time", it can be deconstructed to
"George [noun] had [auxiliary, past] (to wait) [verb phrase] ({for} a very long time) [prepositional phrase]".
vs.
"He [pronoun] did [auxiliary, past] (have to wait) [verb phrase] (for how long) [prepositional phrase]".
The arrangement of words in "How long did he have to wait for?" is called preposing, and is a very common feature of English
Ok so the sentence is: George had to wait a very long time.
If you change this into a question the answer is: How long did he HAVE to wait for?
My question is why do you use "HAVE" instead of "HAD" as the rule in English is "he/she/it = has/had" and "I/we/they = have".