If you haven't cut up the croissants, slice into 1-inch cubes. Combine the croissants and milk in a large bowl. Let the ingredients sit until most of the milk is absorbed, about 10 minutes.
In a separate large bowl, whisk together the eggs, sugar, cream, cinnamon, vanilla, and salt until evenly combined. Stir into the croissants.
Pour the ingredients into the prepared pan and let stand on the counter for 20 minutes to give the mixture time to soak into the bread.
While the mixture is resting, place an oven rack on the center shelf and preheat the oven to 350°F.
Gently press down on the croissants with clean hands to compress the ingredients slightly. Top evenly with the chocolate chips and pieces of butter.
Bake for 55-65 minutes, or until a knife inserted into the middle comes out clean. Cool for at least 20 minutes before serving.
While the croissant pudding is cooling, prepare the vanilla sauce: Whisk together the milk, cream, sugar, butter, flour, cinnamon, and salt in a heavy saucepan until smooth. Bring to a simmer over medium heat, whisking occasionally. Once the sauce is simmering, whisk frequently until thickened, 10 to 12 minutes. (Note: the sauce will continue to thicken as it cools). Stir in the vanilla extract.
Serve croissant pudding with vanilla sauce drizzled on top and top with berries.
Store leftovers in an airtight container in the refrigerator and enjoy within 5 days.