Preheat the oven to 325°F.
Combine the milk, butter, sugar, eggs, and vanilla in a large mixing bowl. Whisk until incorporated and smooth, but don’t over-whisk.
Line a baking dish with two thirds of the challah slices, lining the edges too. Sprinkle with half the chocolate chips and half the raisins. Cover with the remaining challah slices, layering them one on top of the other. Top with the remaining chocolate chips and raisins, making sure the chips and raisins get inside the layers created by the challah slices. Pour the milk mixture over the top of everything.
Wrap the baking dish tightly with aluminum foil. Bake 50 minutes, then remove the foil and cook 15 minutes longer, until set in the middle and lightly browned on top.
While the pudding is baking, make the vanilla cream: Combine the half-and-half, vanilla, and sugar in a large saucepan. Heat over medium heat, whisking regularly, until steaming hot.
Place the egg yolks in a large mixing bowl and gradually add the hot half-and-half mixture to the egg yolks, whisking vigorously all the while. When all the half and-half mixture has been whisked into the egg yolks, return the mixture to the saucepan and heat over medium heat, whisking constantly. Cook until the mixture thickens. Spoon over the pudding and serve.