Preheat the oven to 350°F. Lightly grease a 9 x 13 pan.
Make the topping by whisking together the sugar, salt, flour, and cinnamon. Add the melted butter, stirring until well combined. Set the topping to the side.
Make the filling by mixing together the brown sugar, cinnamon, and cocoa powder. Set it aside.
To make the cake: In a large bowl, beat together the butter, salt, sugars, baking powder, and vanilla until well combined and smooth.
Add the eggs one at a time, beating well after each addition.
In a separate bowl, whisk together the sour cream or yogurt and milk till well combined. You don't need to whisk out all the lumps.
Add the flour to the butter mixture alternately with the milk/sour cream mixture, beating gently to combine.
Pour/spread half the batter (a scant 3 cups) into the prepared pan(s), spreading all the way to the edges. If you're using two 9" round pans, spread 1 ⅓ cups batter in each pan.
Sprinkle the filling evenly on the batter.
Spread the remaining batter atop the filling. Use a table knife to gently swirl the filling into the batter, as though you were making a marble cake. Don't combine filling and batter thoroughly; just swirl the filling through the batter.
Sprinkle the topping over the batter in the pan.
Bake the cake until it's a dark golden brown around the edges; medium-golden with no light patches showing on top, and a toothpick or cake tester inserted into the center comes out clean, about 55 to 60 minutes for the 9" x 13" pan, 50 to 55 minutes for the 9" round pans. When pressed gently in the middle, the cake should spring back.
Remove the cake from the oven and allow it to cool for 20 minutes before cutting and serving. Serve cake right from the pan.