1Place milk in a small bowl, add yeast, and stir to combine; let sit 5 minutes.
2Place sugar and 4 cups of the flour in the bowl of a stand mixer fitted with a hook attachment and mix on low speed to combine. Pour in milk-yeast mixture and mix until all of the flour is moistened, about 2 minutes. Add salt, then eggs one at a time, waiting until each egg is completely incorporated before adding another. Continue mixing until all the eggs are completely incorporated. Increase the speed to medium and continue to mix until a smooth and elastic dough forms, about 10 minutes.
3Increase the speed to medium high and add the butter, one piece at a time, waiting until each piece is incorporated before adding another. Continue mixing until the dough looks smooth and shiny but is not sticky and doesn’t tear when lightly stretched, about 8 to 10 minutes total. If it is too sticky, add some of the remaining 1/2 cup flour, little by little, just until it’s no longer sticky. (Avoid the temptation to add too much flour.)
4Lightly oil a large bowl and place the dough inside. Cover with a slightly damp towel or plastic wrap and let sit in a warm place (about 70°F) until the dough has increased in size by a third, about 80 to 90 minutes. Pull the outer edges of the dough into the center to form a ball, and rotate so the seam is on the bottom. Cover with plastic wrap and refrigerate overnight (chilling slows the fermentation process and makes the dough easier to shape).
5Set the dough at room temperature. Remove the plastic wrap and cover the bowl with a damp towel. Let the dough come to room temperature, about 3 to 4 hours. Meanwhile, prepare the topping.
For the topping:
1Place flour, powdered sugar, baking powder, and salt in a large bowl and whisk to combine; set aside.
2Place butter in the bowl of a stand mixer fitted with a paddle attachment and beat on medium-high speed until light in color and fluffy, about 3 minutes. Stop the mixer to scrape down the sides and bottom of the bowl with a rubber spatula.
3With the mixer on low speed, add the flour mixture and vanilla or cinnamon, mixing until the ingredients are combined and a handful forms a ball when squeezed together, about 2 minutes.
To form the buns:
1Line 3 baking sheets with parchment paper; set aside.
2Divide the dough into 24 equal pieces. Roll the pieces into smooth balls by cupping your hand around the dough, pressing down very lightly, and rolling it against the work surface. (If it starts to stick and smudge the surface, dust the surface very lightly with flour.) Place 8 dough rounds on each baking sheet about 2 inches apart; set aside.
3Divide the topping into 24 portions. Roll a portion of topping in your hands, place it on a work surface, and flatten it with a flat spatula or your hands until it’s about 2 1/2 to 3 inches in diameter. Using a spatula, remove the flattened topping from the work surface and drape it over a dough round. Repeat with the remaining topping and rounds.
4Score the topping with the tip of a sharp paring knife to make parallel curved lines resembling a seashell. Let the dough rounds sit at room temperature until increased in size by a third and the dough springs back when pressed lightly on the side, about 45 to 60 minutes.
5Meanwhile, heat the oven to 350°F and arrange racks in the upper and lower thirds. Bake 2 sheets of the conchas, rotating bottom to top rack and back to front halfway through the baking time, until the bottoms and sides are golden, about 30 to 40 minutes.
6For the remaining sheet of conchas, arrange a rack in the middle and bake 25 to 30 minutes, rotating the sheet back to front halfway through the baking time. Allow the buns to cool, or eat warm.