Preheat the oven to 350°F (175°C).
Prepare two 9-inch round cake pans by greasing and lining with parchment paper.
In a mixing bowl, cream together butter and sugar until pale and fluffy.
Add eggs one at a time, mixing well after each addition, then add vanilla and almond extract (if using).
In a separate bowl, whisk together flour, baking powder, and salt, then alternate adding dry ingredients with milk until just combined.
Divide the batter between prepared pans and bake for 25-30 minutes, until a toothpick comes out clean.
Cool in pans for 10 minutes, then turn out onto wire racks to cool completely.
To make the cheesecake layer, beat cream cheese until smooth, then add sugar and eggs one at a time.
Mix in sour cream, vanilla, and flour until smooth, then pour into a prepared springform pan.
Bake cheesecake at 325°F (160°C) for 40-45 minutes, until the center jiggles slightly.
Allow cheesecake to cool for an hour, then refrigerate for at least 4 hours or overnight.
For the strawberry filling, combine 1 pound of hulled and sliced strawberries with sugar, cornstarch, lemon juice, and salt in a saucepan.
Cook over medium heat, stirring until boiling and thickened, about 8-10 minutes. Let cool completely.
Retain another pound of sliced strawberries for decoration.
Assemble the cake: Place the first cake layer on a serving plate, spread half of the cooled strawberry filling on top, then add the cheesecake layer.
Spread remaining strawberry filling on top of the cheesecake, and add the second cake layer.
For frosting, beat cream cheese and butter until smooth, then add powdered sugar and vanilla.
Apply a crumb coat of frosting, refrigerate for 30 minutes, then add the final coat of frosting.
Decorate with fresh strawberry slices and refrigerate for at least 2 hours before serving.