The first time, he finds Claudius praying, and uses that as a scapegoat so he can again put off his pious duty.Later when he is alone with Gertrude, he thinks that Claudius is behind the curtains, and kills the man there.
The internal cause is within his character, and the conflict between his moral scrupulous nature and the act of revenge.
The external causes are the difficulties that he encounters.
Unfortunately, Polonius becomes the victim of Hamlet’s dagger.
The only time when Hamlet does not hesitate to carry out his pious duty is when he is in the bedroom with Gertrude.
Some attribute the cause of delay to his cowardly nature which dares not act for fear of consequences.
There is ample proof to show that Hamlet is not a coward and is capable of fearless acts of heroism in the face of danger and difficulty.This is the only time when Hamlet actually has the courage to try to kill Claudius, thus opening the path to Gertrude.All of the other times in the play, Hamlet is either alone or with people who he needs to hide his desire from.First, he tries to discover whether or not Claudius really did kill King Hamlet, which gives him some time.After he has convinced himself that Claudius is to blame, he attempts to murder him just twice.The Oedipal Complex theory in regard to Hamlet’s situation seems more likely because of the amount of times Hamlet has to kill Claudius but always fins a reason not to kill him.If it is not the case, then the cause of the procrastination remains a mystery.Hence, Hamlet would find it difficult to meet his enemy alone.Also, he does not in the beginning have any strong proof of Claudius's guilt except for the Ghost's story.With this he cannot hope to win the people's help in deposing the king.Hence, he gets enacted the play and the King's guilt is confirmed.