This question and variations of it have been asked for literally four centuries, and each generation should ask it again. Here are the core responses:
1. Hamlet never existed in real life. He is an invention of William Shakespeare, an “imitation of an action in the form of action.”
2. This point is made because whatever ambiguities there are concerning Hamlet’s “indecisiveness”, they are deliberate, part of the “imitation.”
3. The theme of Hamlet is epistemological—that is, it is exploring the way we “know” things—ocular proof? Hearsay? Faith? Science? In Elizabethan England, the religious beliefs included a devil who could fool humans, leading them by their all-too-human flaws and weaknesses to “sin,” that is, to act on their own desires in the guise of justice or bravery or revenge. The vision of the ghost of Hamlet’s father on the guard’s parapet could be just such a temptation.
4. The main argument in favor of calling Hamlet indecisive is his hesitation at revenging his father’s murder. This hesitation is particularly encapsulated in the scene in which Duncan is praying, and Hamlet does not wreak revenge, even though he has the “proof” of Duncan’s psychological reaction to “the Mousetrap.”
5. Countering the argument of “indecisiveness, are the dozen or so times in the play when Hamlet acts very deliberately—the business with Rosenkrantz and Guildenstern (“Though you fret me, you cannot play me”), the stabbing of the unknown figure behind the arras, etc.
6. Therefore, he can be careful to act, without being “weak.”
7. Finally, we must remember that Hamlet had every right to be angry—his mother’s lechery and complicity, his uncle’s treachery, the approaching war, etc., so by any standards he should be given some leeway for a chaotic situation, fraught with mental puzzle and emotional confusion. So, “good and noble” should not be in question.
In the final analysis, the play endures as arguably the greatest piece of dramatic literature in the English language—indecisive or not.