1. Make pudding: Cut bread into 1/2-inch cubes. In a large saucepan, combine cream, sugar and salt and bring to a boil over medium heat, stirring to dissolve sugar. Add chocolate, cinnamon and espresso powder, let sit for 3 minutes, then whisk until smooth. Let cool slightly.
2. In a large bowl, whisk together eggs, yolks and milk. Slowly whisk in chocolate mixture until well combined. Add bread, pressing it down into liquid. Cover and let stand for 2 hours, pressing down occasionally to allow bread to absorb liquid.
3. Preheat oven to 325ºF. Grease an 11-by-7-inch baking dish with butter or cooking spray. Pour bread mixture into dish. Place baking dish in a large roasting pan and add hot water so that it reaches 1 inch up side of baking dish. Bake for about 1 hour, until center of pudding feels firm. Remove from oven, take baking dish out of water bath and let cool on a wire rack for 40 minutes.
4. Make sauce: In a saucepan, combine butter and confectioners' sugar. Place over low heat and cook, stirring, until smooth. Add whiskey. Whisking vigorously, add egg yolks. Stir in cream. Raise heat to medium and cook, whisking constantly, until sauce thickens and coats back of a spoon (do not boil). Remove from heat. Let cool slightly; serve with bread pudding.