Make the filling: Whisk together sugar, cornstarch, cardamom, and salt in a 2-qt. saucepan; whisk in milk and eggs. Bring to a boil over medium heat; cook, whisking constantly, until thickened, about 1 minute. Remove from heat; whisk in butter. Transfer mixture to a bowl; press a piece of plastic wrap onto surface of filling. Refrigerate.
In a bowl, whisk cream and vanilla to stiff peaks. Fold whipped cream into chilled filling; transfer to a piping bag fitted with a fluted tip. Chill for 2 hours.
Make the dough: In the bowl of a stand mixer fitted with a paddle, combine milk, sugar, cardamom, and yeast; stir together and let sit until foamy, about 10 minutes. Add egg; mix to combine. Add flour, baking powder, and salt; mix until a dough forms. Replace paddle with hook attachment; knead on medium speed for 2 minutes. While kneading, slowly add butter in batches, mixing until completely incorporated before adding the next batch, 3–4 minutes. Continue kneading for 4 minutes more after last of butter is added. Transfer dough to a lightly greased bowl and cover with plastic wrap; let sit until doubled in size, about 1 hour.
Heat oven to 400°. Transfer dough to a work surface and divide into 16 equal portions. Roll each portion into a ball and place 8 balls each on 2 parchment paper-–lined baking sheets; cover both baking sheets loosely with plastic wrap and let sit until dough has risen slightly, 30 minutes. In a small bowl, stir together cream and egg yolk. Uncover dough balls. Using a pastry brush, brush each dough ball with egg wash. Bake, moving baking sheets from front to back of oven and from top rack to bottom rack halfway through cooking, until golden brown, 20 minutes. Transfer to a wire rack and let cool to room temperature.
Using a knife, cut 1⁄2" from the top of each bun and set aside. Pull out most of dough from inside of each bun; discard. Pipe filling into each cavity; top with reserved lids. Dust with confectioners' sugar.