I think that Hamlet has no blame at all for the deaths of Gertrude, Rosencrantz and Guildenstern. Claudius deliberately sends people to murder R&G (although it could have been a misinterpretation on the executioner's part), and Gertrude inadvertently drinks the poison that Claudius prepares in his evil plan to murder Hamlet. Hamlet's intention of killing Claudius could also be justified by the fact that Claudius tries to kill him throughout the whole story.
We can agree that Hamlet does not kill Claudius during his prayer at least partially for fear that Claudius might enjoy a good afterlife for his repentance. We should also notice that Hamlet contemplates life and death a lot, and does not know what anyone's afterlife would be like, or if there is an afterlife at all. At first, he fears that heaven could be real and Claudius might go there, and fears his own death because he does not know what will happen afterwards. But at the end, he is finally determined to carry our his revenge and is ready to face his own death, so he goes to the fencing match that Claudius hosts even though he is extremely suspicious of it.