Line a cookie sheet with a single layer of graham crackers.
Whisk the instant pudding mix and 3 cups of whole milk together until thick and smooth.
Fold in the whipped topping and sour cream into the pudding mix.
Gently spread the pudding mixture on top of the graham crackers.
Add another layer of graham crackers.
In a medium microwave safe bowl beat the butter until creamy.
Slowly add the milk (cover the bowl and mixer with a cloth to prevent splattering, if needed).
Beat in the vanilla and salt.
A little bit at a time, add the cocoa and beat well between additions (again use a cloth to cover the bowl and mixer to prevent splattering, if needed.)
Repeat the process with the powdered sugar stopping to scrape the sides, if needed.
Warm the finished frosting in the microwave for about 30 seconds or until it easy easy to spread (you want it to have the texture of sour cream or salad dressing).
Pour the frosting on the top of your pudding mixture and gently spread to cover all of the pudding.
Cover the cake (I use toothpicks inserted into the cake to help keep the plastic wrap from sticking to the frosting) and chill overnight, longer if possible.