Cut bread into 1" cubes. Arrange in a 9x13" pan that has been sprayed with non-stick spray.
Vigorously whisk eggs, half & half, sugar, vanilla, and cinnamon till frothy.
Pour mixture evenly over the top of the bread cubes. Cover with plastic wrap and chill in the refrigerator overnight (or for 8 hours).
For topping: Mix flour, brown sugar, pecans, cinnamon, and salt in a small bowl. Stir in the melted butter until just barely combined. (You can make the night before and refrigerate, or make it in the morning.)
The next morning, remove the casserole and topping from fridge. Let sit at room temperature for 20 minutes or so while you preheat your oven to 350°.
The topping will have hardened in the refrigerator, so after it softens a bit, break it into clumps and sprinkle over the bread cubes.
Bake uncovered at 350° for 50-60 minutes, or until a knife inserted in the middle comes out clean, and the top is browned.
Serve warm as is, or with syrup, honey, powdered sugar, whipped cream, and/or fresh fruit.