Preheat your oven to 350°F (175°C) and allow at least 15 minutes for it to fully come to temperature. Grease a 9x9 inch baking pan with butter or nonstick spray, then line with parchment paper if desired, leaving overhang on two sides for easy removal.
In a medium bowl, whisk together 3/4 cup flour, 3/4 cup packed brown sugar, 2 teaspoons cinnamon, and 1/4 teaspoon salt. Add 6 tablespoons of cold cubed butter and use a pastry cutter or your fingertips to work it in until the mixture resembles coarse, pea-sized crumbs. Refrigerate while you prepare the batter.
In a large mixing bowl, whisk together 2 cups all-purpose flour, 2 teaspoons baking powder, and 1/2 teaspoon salt for about 30 seconds until fully combined and slightly aerated. Set aside.
In a second large bowl, beat 1/2 cup softened butter and 1 cup granulated sugar with a hand or stand mixer on medium-high speed for 3 to 4 minutes, until pale and fluffy. Scrape down the sides halfway through.
Add the 2 eggs one at a time, beating well after each addition, then mix in 2 teaspoons of vanilla extract. Beat on medium speed for 30 seconds more and scrape down the bowl.
With the mixer on low, add the flour mixture in three additions, alternating with the 3/4 cup whole milk in two additions (flour, milk, flour, milk, flour). Mix only until just combined after each addition — do not overmix.
Spread the batter evenly into the prepared pan using a rubber spatula. Remove the streusel from the refrigerator and scatter it evenly over the batter, gently pressing it down slightly so it adheres.
Bake on the center rack at 350°F for 38 to 42 minutes, until a toothpick inserted in the center comes out clean or with just a few moist crumbs. If the streusel darkens too quickly, tent loosely with foil.
Transfer the pan to a wire rack and cool for at least 20 to 25 minutes before slicing. Serve warm or at room temperature, plain or dusted with powdered sugar.