Prepare the Bread: Grease a 9x13-inch baking dish. Place the cubed bread into the dish, arranging it evenly.
Make the Custard: In a large bowl, whisk together the eggs, milk, heavy cream, granulated sugar, brown sugar, cinnamon, vanilla extract, and a pinch of salt. Pour this mixture evenly over the bread cubes, ensuring that all pieces are soaked.
Refrigerate: Cover the dish with plastic wrap or foil and refrigerate for at least 2 hours, or ideally, overnight. This allows the bread to fully absorb the custard mixture.
Make the Topping: In a small bowl, combine the flour, brown sugar, cinnamon, and salt. Using a pastry cutter or your fingers, work the cold butter into the mixture until it resembles coarse crumbs.
Bake: When ready to bake, preheat the oven to 350°F (175°C). Sprinkle the topping evenly over the soaked bread mixture.
Bake Time: Bake uncovered for 45-55 minutes, or until the top is golden and the custard is set. For a softer texture, bake for the shorter time; for a firmer texture, bake longer.
Serve: Let the dish cool for a few minutes before serving. Top with maple syrup, whipped cream, or fresh berries if desired.