In a large saucepan, stir together sugar, flour and cocoa powder. Gradually whisk in the milk.
Put the saucepan over medium heat. Whisk over medium heat until mixture it thickens. Reduce heat to low and continue stirring and whisking for two minutes (this is to cook out any floury flavor). Scrape the thickened mixture into the bowl of a stand mixer and press a piece wax paper directly over it to keep a skin from forming. Let cool for about 40 minutes.
While this mixture cools, cut your butter into about 10 to 12 chunks. Melt the 6 oz of chocolate using your favorite method. I recommend the microwave, heating on high and stirring every 30 seconds. You want to melt the chocolate early enough in the process so that it has time to cool, so maybe about 20 minutes before the mixing phase.
Using the whisk attachment, begin mixing on medium speed. Add one chunk of butter at a time with the mixer going. Scrape sides of bowl often. Check and make sure the mixture is not too warm and that the butter is not too cold. Cold butter can cause the chocolate to lump up and too warm batter will melt it too fast and make the icing too soft. If you used unsalted butter, add some salt.
Once your butter is incorporated and you have a smooth and light cocoa mixture, gradually drizzle in the melted chocolate, whipping at medium until smooth. Beat in the vanilla. Frosting should be smooth and silky. Frost the cake. You can store this cake in the refrigerator or at room temperature, but I recommend the refrigerator.