For the casserole:
2 1/2 cups all-purpose flour, divided
2 tablespoons granulated sugar
1/2 teaspoon kosher salt
2 large eggs, lightly beaten
2 cups buttermilk
1/2 cup whole or 2% milk
4 tablespoons (1/2 stick) unsalted butter, melted and cooled
Finely grated zest from 1 medium lemon
1 tablespoon freshly squeezed lemon juice
1 teaspoon baking powder
1 teaspoon baking soda
1 1/2 cups fresh blueberries
For the streusel:
1/2 cup all-purpose flour
3 tablespoons packed brown sugar
3 tablespoons granulated sugar
1/2 teaspoon ground cinnamon
1/4 teaspoon kosher salt
4 tablespoons unsalted butter, cubed
For the casserole: Whisk 2 cups of the flour, sugar, and salt together in a large bowl. Add the eggs, buttermilk, milk, melted butter, lemon juice, and zest. Stir until just barely combined. Do not overmix — the batter will be lumpy. Cover the bowl and refrigerate overnight. (You can also skip the overnight rest and continue with baking the casserole immediately.)
Arrange a rack in the middle of the oven and heat to 350°F. Coat a 9x13-inch baking dish with cooking spray.
Whisk together the remaining 1/2 cup flour, baking powder, and baking soda in a small bowl. Fold the mixture into the buttermilk mixture until just combined. Pour into the prepared baking dish. Sprinkle evenly with the blueberries; set aside.
For the streusel: Whisk together the flour, sugars, cinnamon, and salt in a small bowl. Add the butter and use a fork or your fingers to work the ingredients together until well-combined and crumbly. Sprinkle it evenly over the casserole.
Bake until golden-brown, the casserole starts to pull away from the sides of the dish, and the top springs back gently when touched, 45 to 50 minutes. Remove from the oven and cool for about 5 minutes before serving.