Preheat oven to 350°F (175°C) with the rack in the center position. Grease a 9x13-inch baking pan with butter or non-stick spray, and line with parchment paper if desired.
Whisk together flour, both sugars, cinnamon, and salt in a medium bowl, then cut in the cold cubed butter using a pastry cutter or fingertips until coarse, pea-sized crumbs form. Refrigerate until needed.
Stir together brown sugar and cinnamon in a small bowl, then drizzle in the melted butter and mix with a fork until soft, crumbly clumps form. Set aside at room temperature.
Beat softened butter on medium speed for 1 minute, then add sugar and beat on medium-high for 3–4 minutes until light and fluffy. Add vanilla and beat 30 seconds more.
Add eggs one at a time, beating well after each addition and scraping down the sides of the bowl, until the batter is smooth and slightly glossy.
Whisk together flour, baking powder, baking soda, and salt in a separate bowl until evenly combined and lump-free.
With the mixer on low, alternate adding the flour mixture in thirds and the buttermilk in two additions, beginning and ending with flour; mix just until no dry streaks remain — do not overmix.
Spread half the batter evenly in the prepared pan, sprinkle the cinnamon filling all the way to the edges, then dollop the remaining batter on top and gently spread to cover.
Remove streusel from the refrigerator and scatter it evenly over the entire surface, gently pressing it into the batter so it adheres without sinking.
Bake for 40–50 minutes, until the edges are golden, the streusel is deeply golden and crisp, and a toothpick inserted into the center comes out clean or with just a few moist crumbs.
Transfer the pan to a wire rack and cool for at least 20–30 minutes before slicing. Serve warm or at room temperature.