In a large bowl, whisk together flour, sugar, and salt. In a separate bowl, whisk together warm milk, eggs, and softened butter.
Gradually add the wet ingredients to the dry ingredients, mixing until a shaggy dough forms. Turn out onto a lightly floured surface and knead for about 5-7 minutes until smooth and elastic. Place the dough in a greased bowl, cover, and let it rest for 30 minutes.
On a lightly floured surface, roll the dough into a large rectangle. Scatter the cold butter cubes over two-thirds of the dough, then fold the unbuttered third over the buttered portion, and then fold the remaining third over the top, like folding a letter. Seal the edges.
Rotate the dough 90 degrees and roll it out into another large rectangle. Repeat the folding process (letter fold). Chill the dough in the refrigerator for at least 1 hour.
For the filling: In a medium bowl, beat together cream cheese, sugar, egg yolk, and vanilla extract until smooth and creamy.
Preheat your oven to 375°F (190°C). Line a baking sheet with parchment paper.
Roll out the chilled dough one last time into a large rectangle. Cut the dough into 12 equal squares. Place a spoonful of cream cheese filling into the center of each square. Fold the corners of the dough towards the center to enclose the filling, creating a star shape or a simple envelope fold.
Place the prepared Danish pastries on the prepared baking sheet. Bake for 20-25 minutes, or until golden brown and puffed up.
For the glaze: Whisk together powdered sugar and milk until smooth. Drizzle over the warm Danish pastries.
Let the pastries cool slightly before serving.
Notes
These Danish pastries are best enjoyed fresh, but can be stored in an airtight container at room temperature for up to 2 days.