I tend to agree with #4. Hamlet may not act on his vow as any of us would or how we expect him to; however, he does not hesitate to act. In fact, he is often foolishly impulsive in his actions. Hamlet kills Polonius in a moment of rashness, for example, and he is quick to take advantage of the actors' being there to "trap" Claudius in his guilty conscience by writing a few lines to add to the play. In fact, he is quick to act in many ways, though his ultimate goal of avenging his father's death is certainly not achieved quickly.
I think it could be argued that Hamlet does not delay or procrastinate all that much. When the ghost tells him to "avenge my foul, most unnatural murder," Hamlet immediately takes steps to do so. He puts on an "antic disposition," perhaps to discover more about the king, breaks off his relationship with Ophelia so that he can concentrate on revenge, plans a play to "catch the conscience of a king," stabs and kills who he thinks is the king, plans the deaths of Rosencrantz and Guildenstern, duels with Laertes, and eventually kills Laertes and Claudius. For a supposedly inactive character, Hamlet is involved in quite a bit of action, quite a bit of bloodshed. He delays his revenge until Act 3, and when he does act, he kills the wrong person, which leads to his being sent away from the court, unable to do that much until he returns. He does not return until Act 5.
I think the "To be or not to be" soliloquy is a great source of answers to your question. The entire speech is about the topic of action and inaction. He poses an intial question about which is more noble, to let things happen and suffer through them, or to act action against things and perhaps fail in the attempt. When he goes on to talk about life, he mentions a laundry list of ills of this world and wonders why people don't just kill themselves and end all this worldly suffering, but then he realizes that no one ever returns from the dead to tell us it is better on the other side. Because we don't know the full extent of the consequences of our actions, we think about that, and that very thought process makes us lose our motivation and drive to accomplish our goals. As Hamlet says it, "the native hue of resolution is sicklied o'er with the pale cast of thought." Because we think (over-think), our conscience get the best of his and "conscience makes cowards of us all."
I think it's just his personality. Some people are born decisive and some are hesitant. You can see this in his "to be or not to be" soliloquy and in how he envies Fortinbras because Fortinbras is so sure of what he should do. So, I just think it's how Hamlet is by nature. The problem for him is that he's been put into this situation that doesn't really suit his personality.
All throughout the play, Hamlet is given opportunities to kill Claudius, but is unable to because of his inability to act. He thinks too much of his actions instead of doing them. For example, Hamlet had a perfect opportunity to murder Claudius, when he see him kneeling in prayer. He wonders if this is the time to kill him and finally get it over with, but decides against it. As he draws his sword, Hamlet says, “now he is a-praying, And now I’ll do ‘t. And so he goes to heaven, And so am I revenged. That would be scanned. A villain kills my father, and for that, I, his sole son, do this same villain send To heaven.” (Act III, scene iii, 76-82). Unreasonably pondering over the situation, Hamlet claims that since Claudius is praying, he does not want to kill him and allow him to go off to heaven. This is nonsense since Hamlet could have waited for Claudius to finish praying to accuse him of murder and defeat him once he revealed his guilty sins. Instead, he uses religion as a means to stop himself from following the Ghost’s orders. Because Hamlet thinks too much of the situation, his mind came up with an excuse to prolong his actions.
Delay is one of the central themes in the play. Shakespeare explores that chasm *not between thought and action* but between resolution and action. This is displayed very bluntly when Pyrrhus is poised to strike down Priam. He pauses. Why? Because it is our nature as rational thinking beings. This is what separates us from bestial oblivion.
We know that Laertes delays his trip to France to lecture Ophelia and he delays cutting Hamlet's throat in the churchyard because he and Claudius have a plan. Claudius delays sending Hamlet to England because Polonius wants to test his "Hamlet is mad for love" theory. Lucianus delays poisoning the Player King because he wants to mug for the audience. I could go on.
Suffice it to say that within the context of the play Hamlet's rationalizing takes over his hot-blooded animal instincts. We see in Hamlet's soliloquies, particularly the 3rd, 4th, 6th and 7th the explanations for his hesitations. Through the course of the play he offers various explanations. He is unsure of the ghost, he is unsure of the ghost's story, he also wants to test his mother's involvement, he wants Claudius to die a sinner, is he a coward? does he have the inner strength? what if he were to be killed? At other points he is at a loss to articulate what keeps him from translating his resolve into action.
Claudius also ponders this very question in 4.7 as does the Player King in the Mousetrap.