Separate the eggs while they're cold and keep the yolks and the whites in separate bowls.
Make the lemon curd first: In the bowl with the egg yolks, add the granulated sugar, vanilla, and salt, and whisk until pale yellow. In a separate bowl, add the fresh-squeezed lemon juice and flour and whisk until smooth and the flour is dissolved.
Melt the butter in a saucepan over medium heat. Add the lemon juice/flour mixture and cook, whisking constantly, until thick. Remove from heat. Slowly add the hot mixture to the bowl with the egg yolks, whisking constantly as you do.
Once all of the warm liquid has been added to the yolks, whisk until smooth then return everything back to the saucepan and cook over medium heat. Bring to a boil, whisking constantly until very thick. Remove from heat and strain the lemon curd through a sieve and into a bowl. Whisk the curd to help get it to pass through the sieve and use a large spoon to scrape the strained curd from the other side and into a bowl. Cover with plastic wrap, press the plastic wrap onto the surface to prevent a film from forming. Keep the curd in the fridge while you make the frosting.
Make the frosting: Bring about an inch of water to a gentle boil in a medium saucepan. To the bowl with the egg whites, add the granulated sugar and whisk to combine. Place the bowl over the saucepan. The bowl should fit over the top without the bottom touching the water. Cook, whisking constantly, until the sugar is dissolved and the mixture reaches 165°F. About 5-6 minutes.
Transfer the mixture to a large, clean bowl or the bowl of a stand mixer fitted with a whisk attachment. Use a hand-held mixer or the whisk on medium speed to beat the egg whites to stiff, glossy peaks. About 10 minutes. Add the softened butter, 1 piece at a time, and mix until fully incorporated after each.
Once all of the butter is added the frosting should be smooth and glossy with a marshmallow consistency. If it's too thin, place the bowl in the fridge for about 30 minutes until it firms up. If the frosting looks grainy or curdled, place the bowl back over the gently boiling water and cook, whisking until smooth.
Add the vanilla extract, salt, and softened cream cheese. Mix until smooth.
To frost the cakes: Use a large serrated knife to level off the domed tops* and place the first cake layer with the cut side up onto a cake board or a serving plate. Add some frosting to a piping bag and pipe a thick border of frosting around the outside edge of the cake. Spread a third of the lemon curd inside the border and then top it with more frosting. Place the second cake layer on top with the cut side down. Pipe a border of frosting around the outside edge and then spread another third of the lemon curd inside and top with more frosting. Repeat with the final cake layer.
Use an offset spatula to spread frosting all over the top and the sides of the cake. Place the cake in the fridge for at least 30 minutes to let the first coat of frosting set before adding a second layer of frosting. Use an offset spatula or a cake scraper to smooth the frosting around the edge and on the top of the cake. Garnish with fresh lemon slices or as desired and serve. Leftovers will stay fresh, covered, in the fridge for up to 1 week.