One reason that Hamlet delays killing Claudius is that he wants to make sure that Claudius actually killed his father. He doesn't want to take the word of a ghost; he wants actual proof, because the ghost could be a "goblin damn'd" bringing "blasts from hell" who has "intents wicked" (I.iv.40-42). He doesn't want to go and commit murder based on a ghost's word. So, he seeks proof. To do this, he puts on "an antic disposition" (I.v.172), or the visage of madness and silliness in order to go about investigating the murder without arousing suspicion.
So, he sets up the play, and based on his uncle's reaction to it, he is pretty sure that Claudius is guilty. But he still doesn't act; armed with a confirmation of his uncle's guilt, he comes across his uncle praying. But, he doesn't do it. His reason? He needs to kill Claudius while his is "drunk asleep, or in his rage, or in the incestuous pleasure of his bed", not while he is praying, so that he can make sure "his soul may be as damn'd and black as hell, whereto it goes" (III.iii.89-95). It's a rather lame excuse if you ask me; in reality, I just don't think he's ready yet.
Readiness finally comes with the insidious Rosencrantz and Guildenstern plot; something about this conspiracy is a catalyst that prompts Hamlet to action-finally. But before this, he ho-hums his way through the play, armed with excuses and procrastination.