In a saucepan combine the first three ingredients, then add the milk and egg yolks. Bring it to a slight boil over medium heat. Whisk constantly, don't be like me and get distracted or you will have chunks of cooked egg! Once it starts bubbling add the Reese's Spread. Take it off the burner, whisk for a minute then add the butter. If you get cooked egg in your pudding, push it through a sieve to get the majority of the lumps out. Place saran wrap over the pudding and chill for three hours.
Once your chocolate cupcakes are cooled, spoon out the center of the cake (eat that cake) and then spoon the pudding into cupcakes.
For The Frosting
In a high speed mixer cream together the butter and powdered sugar for roughly two minutes. Add the whipping cream and mix until fluffy (5-7 minutes). Add the Reese's Spread and whip until incorporated.