First, make the dough. In a stand mixer fitted with the paddle attachment, mix 2 cups of the flour with the granulated sugar, yeast, and salt on low speed until combined.
In a microwave-safe bowl, microwave the milk and butter until the mixture is warm to the touch and the butter is mostly melted, about 45 seconds (you don’t want the mixture to be steaming or too hot, as this can kill the yeast).
Pour the milk mixture into the flour mixture. Add in the egg, almond extract and vanilla extract. Beat everything together on low speed until combined so the flour doesn’t fly everywhere. Gradually increase the speed to high and beat for 2 minutes. The dough will look more like batter, but this is correct! This step kicks off the gluten development.
After 2 minutes, change to the dough hook attachment. Add in an additional 1 ½ cups of flour and knead on low speed until combined. Use a silicone spatula to scrape down the sides of the bowl. Add the remaining 1 cup of flour (totaling 4 ½ cups) and knead on low speed, stopping the mixer occasionally to re-disperse dough, until the dough starts to pull away from the sides of the bowl and forms a ball around the dough hook.
Increase to medium-low speed and knead until the dough becomes smooth and supple, about 10 minutes. If the dough gets wrapped around the hook too much, turn off the mixer, pull the dough off, flip it over, and turn on the mixer again. The dough is ready when you can stretch a quarter-sized piece of dough between your fingers and see light through it (without it breaking). This means the gluten has developed enough. If your dough breaks, knead for a few minutes more and try again.
Transfer the dough to a large lightly-oiled bowl and cover the bowl with a dish towel or plastic wrap. Let rise in a warm place for 1 hour or until the dough has doubled in size.
Towards the end of the dough’s rise, make the almond filling. In a large mixing bowl combine the butter, almond meal, sugar, egg, almond extract, vanilla extract, and salt. Mix together until it forms a thick paste. Set aside.
Turn the risen dough onto a well-floured surface. Use a rolling pin to roll it into a 12-inch long by 18-inch-wide rectangle, with the wider side closest to you.
Using an offset spatula, spread the almond filling all the way to the edges of the dough into an even layer.
From the long end, roll the dough away from you into a tight roll, sealing the bottom edge down by pinching the dough together.
Use floss or a very sharp knife to cut the dough into 12 even rolls (this can get a little messy with the filling, but don’t worry–it will bake up fine!). Place the rolls in a 9 x 13 inch pan lined with parchment paper. Cover loosely with a dish cloth and allow to rise for another hour until doubled in size and puffed up.
Preheat the oven to 350°F. Bake the rolls until they are golden brown all over, about 30 minutes. Place the pan on a wire cooling rack to cool slightly.
While the rolls cool, make the frosting. In a stand mixer fitted with the paddle attachment, combine the butter, cream cheese, powdered sugar, vanilla extract, almond extract and salt. Beat on low speed, gradually increasing to high and smooth. Spread the frosting over the rolls and top with slivered almonds. Enjoy warm!