Heat the whole milk in a small saucepan over low heat until it reaches 110-115F (it should feel just warm to the touch.) Pour the warm milk into the bowl of a stand mixer and sprinkle the yeast and ½ tsp of sugar on top. Stir lightly just to combine, then leave to proof in a warm, non-drafty place for five minutes. The yeast should open up and start to bubble and smell yeasty. (If it doesn’t, your yeast may not be active or the milk may have been too warm or not warm enough.)
When the yeast has proofed, add the bread flour, sugar, salt, and eggs to the bowl. Mix on low speed with the dough hook attachment until combined, then pause and scrape down the sides and bottom of the bowl. Increase the mixer speed to medium, and allow the mixer to run for 10 minutes. The dough should be elastic and pulling away from the sides of the bowl.
Continue to run the mixer on medium speed, and begin to add the butter a few tablespoons at a time. When all of the butter has been added, pause to scrape down the sides and bottom of the bowl, then continue running the mixer for 10 minutes more. At the end of the final 10 minutes the dough should be elastic, smooth, glossy, and pulling away from the sides of the bowl once again.
Cover the bowl with plastic cling wrap and allow to rest in a warm, non-drafty place for 1-2 hours or until doubled in size. Move the covered bowl to the refrigerator and rest 8-10 hours more overnight.