Using croissants as the bread in bread pudding is even better than you might imagine: The chocolate custard seeps right in between the layers of flaky pastry. And croissants are almost all crust, always the best part of the bread pudding. The dessert is chocolatey, buttery, creamy and flaky all at once. I started doing this when I worked at a country house hotel in England, Stapleford Park Hotel, where we always had leftover baked croissants from breakfast. Cooking with stale bread or croissants is a handy and sensible quick-trick; I love to use it up instead of throw it away. Bread or croissants that are a couple of days old is more firm and absorbent than fresh, so it's always the choice for bread puddings that are moist without falling apart completely. The croissant-cream mixture can be refrigerated, covered, up to one day in advance. If so, add five to 10 minutes to the baking time.
Cut the croissants into 1-inch cubes. You should have about 3 1/2 cups. Place the cubes in an ovenproof baking dish.
In a saucepan, heat the half-and-half, cream, and salt over medium-high heat, stirring occasionally to make sure the mixture doesn't burn or stick to the bottom of the pan. When the cream mixture reaches a fast simmer (do not let it boil), turn off the heat. Add the chocolate and whisk until melted.
In a large mixing bowl, whisk the eggs and sugar together. Whisking constantly, gradually add the hot chocolate-cream mixture. Strain the mixture over the croissant pieces and toss lightly. Let sit while the mixture is absorbed, at least 15 minutes. As it soaks, fold the mixture a few times to ensure even soaking.
When ready to bake, heat the oven to 350 degrees F.
Line a roasting pan that's 2 inches deep and larger than the baking dish with paper towels. Fill the pan with very hot water and place the dish of bread pudding inside. Bake until set, about 40 to 45 minutes. Serve warm, with a scoop of vanilla ice cream on each serving.