In a large bowl, combine pudding mix and 3 cups milk; mix well. Fold in whipped topping and beat with mixer for 2 minutes.
In a buttered 9x13 inch baking dish, spread a layer of graham crackers on the bottom of the dish.
Spread 1/2 of the pudding mixture over crackers, then top with graham crackers. Spread remaining pudding over crackers; top second pudding layer with another layer of crackers.
To make topping: In a medium saucepan over medium-high heat, combine 1/4 cup milk, cocoa and sugar and allow to boil for 1 minute; remove from heat and add butter and vanilla. Mix well and cool.
Pour sauce over graham cracker layer and refrigerate until set; serve.