Prepare the pan and oven. Preheat the oven to 350°F. Grease a 9x13-inch baking pan.
Mix the dry ingredients. Whisk together the flour, baking powder, and salt in a medium bowl. Set aside.
Whip the egg whites. Beat the egg whites until soft peaks form, then gradually add half the sugar and continue beating until stiff, glossy peaks form.
Mix the yolks. In a separate bowl, beat the egg yolks with the remaining sugar until pale and thick. Add the milk and vanilla.
Combine. Fold the dry ingredients into the yolk mixture, then gently fold in the whipped egg whites in two additions. Do not overmix, as this deflates the batter.
Bake. Pour the batter into the prepared pan and bake for 30 to 35 minutes, or until a toothpick inserted in the center comes out clean. Cool completely in the pan.
Make the caramel soak. Whisk together the evaporated milk, sweetened condensed milk, heavy cream, and dulce de leche or caramel sauce until fully combined and smooth.
Soak the cake. Poke holes across the entire surface of the cooled cake using a fork or skewer. Slowly pour the milk mixture over the cake, allowing it to absorb before adding more. Refrigerate for at least 3 hours, or overnight for best results.
Whip the topping. Beat the cold heavy cream and powdered sugar until stiff peaks form.
Assemble. Spread the whipped cream over the chilled cake. Warm the remaining dulce de leche or caramel sauce slightly, then drizzle and swirl it over the top. Add flaky salt if making a salted caramel version.
Chill and serve. Refrigerate for at least 30 minutes before slicing to let the topping set.