Cut or tear the croissants into pieces about 2 inches wide. If they are very fresh, leave the pieces uncovered for 30–60 minutes.
Coat a 9 × 13-inch baking dish with the softened butter.
Spread the croissant pieces loosely across the baking dish without packing them down.
Whisk the eggs, whole milk, and heavy cream until smooth and evenly combined.
Whisk in the ½ cup sugar, vanilla, 1 teaspoon cinnamon, and salt.
Slowly distribute the custard across the entire baking dish, including the corners.
Gently press very dry croissant pieces into the custard for 5–10 seconds without crushing them.
Cover tightly and refrigerate for 8–12 hours.
Remove the casserole from the refrigerator about 30 minutes before baking. Preheat the oven to 350°F (175°C).
Sprinkle 2 tablespoons sugar over the surface. Mix it with the optional ¼ teaspoon cinnamon first if desired.
Bake uncovered for 40–50 minutes, until the top is golden and the center is set without runny egg custard. Cover loosely with foil if the top browns too quickly.
Allow the casserole to rest for 10–15 minutes, then cut into 8–10 portions and serve warm.