In a large mixing bowl, whisk together the instant vanilla pudding mix and cold milk until smooth and thickened, about 2 minutes.
Gently fold in the whipped topping until well combined.
In a 9x13-inch baking dish, layer half of the graham crackers on the bottom.
Spread half of the pudding mixture over the graham crackers, smoothing it out evenly.
Add another layer of graham crackers on top of the pudding mixture.
Spread the remaining pudding mixture over the second layer of graham crackers.
Top with the final layer of graham crackers.
In a small bowl, mix together the powdered sugar, cocoa powder, softened butter, 3 tablespoons of milk, vanilla extract, and lemon juice until smooth.
Spread the chocolate mixture over the top layer of graham crackers.
Cover the dish with plastic wrap and refrigerate for at least 4 hours, or overnight for best results.