In a large bowl, combine the pudding and milk. Whisk until combined.
Gently fold in whipped topping.
Place a single layer of graham crackers in the bottom of a 13x9 baking dish.
Place half of the pudding mixture on top of the graham crackers.
Top with another layer of graham crackers and spread the remaining pudding mixture on top.
Add a final layer of graham crackers on top.
Bring cocoa, milk, and sugar to a full rolling boil; boil about 1 minute, stirring very frequently.
Remove from heat and cool one minute. Add butter and vanilla; stir until butter is melted.
Pour chocolate topping over the top layer of graham crackers.
Refrigerate over night.