Caramelize the sugar. In a small, heavy-bottomed saucepan (at least 3 quarts), sprinkle 1/3 cup of granulated sugar evenly across the bottom. Cook over medium heat, stirring constantly, until the sugar melts and turns a light amber color. Be patient, as the sugar may clump before melting smoothly. Keep an eye on it, it will go from golden to burnt quickly.
Prepare the milk mixture. Whisk together the milk, the remaining sugar, and 1 teaspoon of flour in a separate large saucepan. Heat the mixture over medium heat, stirring constantly, until it boils.
Combine and cook. Carefully pour the hot milk mixture into the caramelized sugar. Then, reduce the heat to low and stir until the sugar clumps dissolve completely. Next, raise the heat to medium and cook until the mixture thickens and reaches 238°F on a candy thermometer (soft-ball stage), about 5-10 minutes. Remove the pot from the heat and stir in the butter until melted. Let the mixture sit at room temperature for about 1 hour to cool.
Beat the icing until thickened. Once the caramel mixture has cooled to about 110°F, transfer it to a mixing bowl. Add the vanilla extract and beat with an electric mixer until the icing thickens to your desired consistency. For a thinner glaze, beat for 2-3 minutes. For a thicker consistency suitable for piping, beat for 5-7 minutes. I recommend taking a small amount and putting in on the cake to see how it sets before you pour it all on. I usually end up beating a few minutes more for a thicker texture.
Ice the cake. Once the cake is completely cool, drizzle or pour the caramel icing over the top. If you want, use thicker icing for piping decorative touches.