Preheat the oven to 325℉. Line the bottom of two 9-inch round cake pans with parchment paper and spray with non-stick cooking spray. Set aside.
Stir lime juice into the milk and set aside. *This will become a buttermilk of sorts, to tenderize the cake. In a medium bowl, whisk together the flour, baking powder, baking soda, and salt. Set aside.
Add canola oil, sugar, lime zest, eggs, and milk mixture to the bowl of a stand mixer fitted with a paddle attachment (or use a large mixing bowl and handheld electric mixer). Using medium-high speed, beat ingredients to combine.Add in the flour mixture and mix on low speed until just combined. *The cake batter will be relatively thin.
Divide batter evenly between the prepared pans. Bake on the center rack of preheated oven for 20-30 minutes or until the cake springs back when lightly pressed, and a toothpick inserted in the center comes out clean. Cool cake completely before assembling. Meanwhile, make the lime curd.
Make the Curd
To a medium saucepan over medium heat, add lime juice, half of the zest, sugar and salt. Stir to combine, then cook until the sugar dissolves and mixture starts to bubble. In a medium heat proof bowl, whisk together the eggs and yolks.
Carefully and very slowly while whisking constantly, pour three-fourths of the hot lime juice mixture into the eggs. Whisk this mixture back into the saucepan and turn the reduce heat to medium low. Whisk constantly until the mixture thickens enough to coat the back of the spoon, about 8 minutes. Do NOT let this mixture boil.
Remove pan from heat and pour the mixture through a fine mesh strainer into a bowl. Gently fold butter, vanilla and remaining lime zest into the hot mixture. Cool mixture. Cover the bowl with a layer of plastic wrap directly against the curd to prevent a skin from forming. Refrigerate until you're ready to assemble the key lime cake.
Make the Frosting
In a large mixing bowl with the mixer on medium-high speed, cream together butter and cream cheese until smooth. Add in zest, vanilla and salt. Reduce mixer speed to low and carefully beat in the powdered sugar, 1 cup at a time. Continue to beat until frosting is smooth and fluffy, about 2-3 minutes, thinning it out with a little milk if necessary.
To Assemble:
Place the cake on a serving plate/platter. Spread about one-third of the frosting on the top of bottom layer and smooth evenly to the edge. Top with the 2nd cake layer and spread another one-third of frosting over the top. Place the remaining frosting into a piping bag and pipe a thick border around the top edge of the cake. You can use any piping shape you like for the border as long as there are no breaks in the decoration. This creates a wall of frosting to hold the curd in the center.
You can also place all of the frosting in a piping bag and use a round tip to fill and top the cake. Place as much curd as you’d like into the center of the cake and smooth out to the border. (You will likely have leftover curd. If so, store in a covered container in the fridge for another use.)
Garnish top of cake with lime slices and zest, if desired. Chill cake until frosting is firm.
Notes
For the moistest cake, bring all cold ingredients to room temperature before you start making this recipe.
To prevent the cake from sticking, line the pans with a circle of parchment paper.