Prepare a 9-inch springform pan by coating it with cooking spray.
For the streusel, combine the flour, sugar and salt in a bowl, add the cold butter and use a pastry cutter or fork to work it in until it's nice and crumbly and stir in the almonds. Put in the refrigerator for now.
For the filling, beat the almond paste, sugar and cream cheese until it's smooth and set it aside (you'll add the almonds later).
For the batter, beat the butter and sugar for about three minutes to get it light and fluffy. Beat in the eggs and vanilla and almond extract until it's well combined.
Beat in the sour cream.
Once the mixture is smooth, beat in the flour, baking powder, baking soda, salt and cinnamon until everything is just combined.
Put half of the batter into your prepared springform pan and spread it to an even layer (it's a thick batter, so this is easier said than done).
Spoon the cream cheese filling in dollops all over the batter layer and spread it out as best as you can. Sprinkle the 1/4 cup of sliced almonds on top of the filling.
Spoon the remaining batter in dollops on top of the almonds and spread it again.
Bake the cake for 15 minutes.
Remove it from the oven and top it with the streusel and then bake for another 40 to 50 minutes until a toothpick inserted in the middle comes out clean (don't stick it all the way down to the filling layer, since that will stay gooey even after baking).
Let the cake cool for about 20 minutes before removing it from the pan. Let it cool completely and then store in an airtight container if not serving right away. (I kept mine in the fridge.)