01 - Generously grease a 9 x 13 inch baking dish with butter or cooking spray. Arrange half the bread cubes in a single, even layer across the bottom.
02 - Distribute the cream cheese cubes evenly over the first bread layer. Scatter half the blueberries across the surface. Complete the layering by adding remaining bread cubes, then top with the rest of the blueberries.
03 - In a large mixing bowl, whisk together eggs, whole milk, heavy cream, granulated sugar, and vanilla extract until fully combined and smooth. Pour the custard evenly over the entire casserole, pressing down gently with a spatula to ensure all bread pieces absorb the liquid.
04 - Cover the dish tightly with plastic wrap or aluminum foil. Refrigerate for at least 30 minutes to allow bread to soak up the custard. For optimal texture and flavor development, refrigerate overnight.
05 - Preheat your oven to 350°F (175°C) with the rack positioned in the center.
06 - In a small bowl, combine softened butter, light brown sugar, all-purpose flour, ground cinnamon, and salt. Use a fork to mash and mix the ingredients together until coarse, crumbly particles form.
07 - Remove the casserole from the refrigerator. Sprinkle the streusel topping evenly across the entire surface. Bake uncovered for 40 to 45 minutes until the top is golden brown and the center is set with no liquid pooling.
08 - Allow the casserole to rest for 5 to 10 minutes before serving to let the custard set. Dust with powdered sugar if desired and serve warm.