Preheat oven to 350 degrees F. Grease and flour two 9 inch round pans and line bottoms with circles of parchment paper.
Mix or sift together the cake flour, baking powder and salt. Set aside.
With a handheld electric mixer, beat the egg whites until stiff peaks start to form (not too dry, not too soft) and set aside for a few minutes while you continue.
In a large mixing bowl, beat the butter and sugar until creamy, scraping sides of bowl often. Beat in the vanilla. The mixture is not as creamy and fluffy as some, so add about a tablespoon of the milk as you beat it.
Gradually add the flour mixture and the milk alternatively in 3 parts, beginning and ending with the flour. Stir with a silicone scraper and beat on low for every addition. When completely incorporated, beat with the mixer for about 30 seconds or until well blended.
Fold in the beaten egg whites in 3 parts, folding until incorporated.
Divide batter between the two pans and bake cakes for 28 to 35 minutes. Let cool in the pans for 10 minutes then invert from pans, peel away parchment and let cool completely.
To make the caramel icing, make sure all the ingredients are room temperature and then put everything but the vanilla in a large, heavy pot (I used Le Creuset French Oven) which you've rubbed with butter.
Bring to a simmer and let simmer for about an hour or more, stirring every so often, until mixture reaches about 240 degrees F. To achieve this, you’ll need to maintain a slow but steady simmer – not too fast, not too slow. Check periodically to make sure temperature is rising. This process takes patience. Luckily, you only need to give it a stir every so often.
Remove from heat, let cool slightly, then add the vanilla. Stir well. With a wooden spoon or a heavy duty silicone scraper, beat the icing until it is a spreadable consistency. It should flow only slightly when poured. Don’t let it cool too much or it will start to get hard.
Do your best to spread it all over tops and sides of cake. The frosting will firm as it cools.