Make cake as directed, using (2) 8x2 inch round cake pans. Combine the milk, half and half, and basil in a heavy bottomed saucepan. Heat gently over medium heat until just simmering, then remove from the heat. Let cool and refrigerate for at least 2 hours and up to overnight (the longer it sits, the stronger the flavor will be). Remove the basil leaves from cream, and then squeeze the leaves over the cream. Discard the leaves.
In a medium bowl, whisk together the sugar, flour, and salt really well (the sugar will help keep the flour from lumping when it boils, so spend a good minute really whisking it together). Place the mixture in a medium, heavy-bottomed saucepan. Slowly pour the basil cream into the flour, whisking to combine as you pour. Cook over medium heat, stirring constantly with a whisk, until the mixture comes to a gentle boil (periodically run a spatula round the edges of the saucepan to remove any flour lurking there). Reduce the heat slightly, and continue to whisk and occasionally stir until the mixture has thickened considerably, 2 to 3 minutes. Remove from the heat and continue stirring for 30 seconds.
Transfer the mixture to a bowl and cover with plastic wrap, making sure the plastic sits directly on the surface (this will help keep it from forming a skin). Let cool to room temperature.
When the mixture has cooled, place the butter in the bowl of a stand mixer fitted with a paddle, and beat on medium speed until smooth and creamy, scraping down the sides as needed. Start adding the flour mixture a few spoonfuls at a time, mixing on low speed after each addition, until it is all incorporated. Scrape down the sides and mix on medium speed until the buttercream is light and fluffy, 2 to 3 minutes. Add the vanilla and food coloring, if using, and mix on low speed until combined. Use immediately.