Grease a 9-x-13-inch baking dish, then fill it with 1-inch bread cubes arranged in an even layer. Leave the cubes loosely settled so the custard can flow into the spaces between them.
Whisk the eggs, milk, heavy cream, vanilla extract, and sugar in a medium bowl until smooth, then pour the mixture across the bread. The bread should look evenly moistened, with no large dry patches on top.
Cover the dish with plastic wrap and refrigerate it for at least 4 hours or overnight. As it rests, the bread cubes will swell slightly as the custard reaches their centers.
Combine the flour, brown sugar, cinnamon, and salt in a medium bowl, then cut in the cold butter until the mixture forms coarse crumbs. Transfer the crumbs to a small resealable plastic bag and refrigerate them overnight so the butter stays firm.
Heat the oven to 350°F when you are ready to bake. Let the oven come fully to temperature so the topping begins browning evenly from the start.
Remove the plastic wrap and scatter the chilled cinnamon crumbs evenly over the soaked bread. Cover the surface from edge to edge for a consistent golden crust.
Bake uncovered for 45 to 60 minutes, choosing the shorter end for a softer center and the longer end for a firmer slice. The casserole is ready when the top is golden and the center looks puffed rather than liquid.