Position a rack in the center of the oven. Heat oven to 350°F. Prepare two cupcake pans with cupcake liners and set aside. (This batter will make 30 cupcakes, or more than 2 pans, so I set up two with liners, and bake the first two pans, and finish up with a third batch/pan with my leftover batter).
In a large mixing bowl, stir together sugar, flour, cocoa powder, baking powder, baking soda, and salt in a large bowl. Whisk to combine.
Add eggs, milk, oil, and vanilla. Whisk to combine.
Add dry ingredients to the egg mixture and whisk to combine.
Stir in the boiling water. Batter will be very thin.
Divide batter into the prepared cupcake pans, filling each well about 2/3 full.
Bake for 18-20 minutes or until wooden toothpick inserted in center comes out clean.
While the cupcakes bake, mix together the caramel and condensed milk for the "poke part. Set aside.
When cupcakes are done baking, remove from the oven and immediately poke the tops of the cupcakes using a wooden skewer, fork, or toothpick. Pour into the holes the condensed milk/caramel mixture.
While cupcakes are cooling, prepare the frosting: In a stand mixer, combine the butter and powdered sugar. Cream until light and fluffy for 2-3 minutes. Add in the heavy cream, caramel, and vanilla. Mix until combined on low. Then on medium-high mix for 8 minutes until light and fluffy.
Using a piping bag and tip, or an offset spatula, pipe the frosting onto each cupcake. Top with candy bars and additional caramel sauce if desired.