Cut bread into bite-size cubes. If bread is soft and fresh, place cubes on a sheet pan and let stand at room temperature overnight to dry out.
Preheat oven to 375°F.
Grease a 13×9×2-inch baking dish with softened butter. Place bread cubes in prepared baking pan. Scatter cranberries over bread.
Beat eggs with sugar, milk, orange zest, orange juice, melted butter, vanilla, and cinnamon until well blended. Pour evenly over bread and cranberries to coat. If desired, sprinkle with coarse sugar. Bake 60 to 65 minutes or until custard is set and edges of bread are browned.
To make orange custard sauce:
In a small saucepan whisk egg yolks with sugar until lightened to pale yellow color, about 2 minutes. Stir half-and-half into mixture until combined. Cook over low, stirring constantly, 15 to 20 minutes or until sauce thickens enough to coat spoon. Stir orange zest into custard sauce.
Serve bread pudding with warm custard sauce over top. Makes 12 servings.