Preheat oven to 350° F.
Cake: Combine flour and sugar in large bowl; set aside.
Combine butter, water and cocoa in medium saucepan. Heat to a boil over medium heat, stirring frequently. Pour butter mixture over flour mixture; mix well. Stir in eggs, buttermilk, baking soda and vanilla extract.
Divide batter between 2 greased 9-inch round cake pans. Bake until wooden pick inserted in center comes out clean, 20 to 25 minutes. Cool in pans 10 minutes; turn out onto cooling rack. Cool completely.
Filling: Combine pudding mix and milk in bowl of electric mixer. Beat on high speed until thickened, 3 to 4 minutes.
Add whipped topping; beat 2 minutes. Refrigerate until set, about 5 minutes.
Glaze: Heat butter, cocoa and half-and-half to a boil in medium saucepan over medium-high heat. Remove from heat; slowly stir in confectioners' sugar (if added too fast, glaze will be lumpy). Stir in vanilla extract. ( Note: Glaze must be warm when ready to pour over cake.)
Place 1 cake round upside down onto cake platter. Top with pudding mixture, it will be a thick layer. Place second cake layer on filling. Slowly pour warm glaze over the top; allow it to run down sides. Chill 2 to 4 hours before serving.
Servings: 8