Preheat the oven to 350 degrees F. Line two 12-cup muffin pans with cupcake liners.
In a medium bowl, sift together the flours, baking powder, cinnamon and salt. In the bowl of a stand mixer fitted with a paddle attachment, cream the sugar and butter on medium-high speed until light and fluffy. Add the eggs, one at a time, beating until just incorporated. Beat in the vanilla. Reduce the mixing speed to low. Add the flour mixture in three batches, alternating with the milk. Beat until combined.
Divide the batter evenly among the lined cups, filling each three-quarters full. Bake until a toothpick comes out clean, 18 to 20 minutes. Transfer to a wire rack and cool completely.
For the filling:
Combine the sugar and 1 tablespoon water into a medium bowl over medium-high heat. Constantly stir until the sugar dissolves into a liquid form. The sugar will dissolve and start to turn brown. Once the sugar and water have completely dissolved, add in the butter and vanilla. Slowly whisk in the heavy cream. Let cool for 10 minutes. Refrigerate for 1 hour to let the caramel thicken before using.
For the frosting:
Beat the butter and cream cheese until light and creamy. Add in the vanilla. Add in the powder sugar, 1 cup at a time, incorporating fully before next addition. Add milk as needed if the frosting is too thick. Place the frosting into a piping bag fitted with a large star tip.
Once the cupcakes have cooled, pull out the centers with a cupcake corer. Melt down the butter. Mix together some cinnamon and sugar in a small bowl. Using a rubber brush, brush the melted butter onto the cupcakes, then roll the tops of the cupcakes into the cinnamon-sugar mixture. Fill the cupcakes with the caramel sauce. Frost cupcakes with cream cheese frosting, dust with more cinnamon and sugar. If you choose, drizzle the cupcakes with leftover caramel sauce.