In the bowl of a stand mixer fitted with a paddle attachment, stir the warm milk, yeast, and sugar. Let sit 5 to 10 minutes, or until nice and bubbly. If it doesn't foam, toss it and start over. The milk was either too hot or the yeast was not fresh (check the expiration date to be sure it isn't old).
Add the eggs, 1 at a time, until combined. Mix in the egg yolk and vanilla extract.
In a separate bowl, whisk 2 cups flour and the salt. Add to the mixer and stir 3 minutes on medium speed.
Reduce speed to low and gradually mix in the remaining 2 cups flour until combined. Mix 5 minutes, stopping halfway to scrape down paddle and sides of bowl. Turn off mixer. If the dough is too sticky, add up to 1/2 cup flour and mix on low speed until incorporated. Dough should be soft but not wet.
Slowly mix in the butter, 2 Tablespoons at a time. Swap out the paddle attachment for a dough hook and knead 8 to 10 minutes. Dough should be clinging to the dough hook in one ball. *Try window pane test (see notes).
Transfer dough to a medium bowl sprayed with nonstick spray. Cover with plastic wrap and refrigerate 8 hours or overnight.
Spray 2 9x5-inch bread pans with nonstick cooking spray.
On a floured work surface, divide dough into two portions. Shape into loaves and transfer to pans. Cover and let rise 1 to 2 hours, or until doubled in size. In a small bowl, beat the egg and water together to make an egg wash. Brush the tops of the loaves with egg wash.
Preheat the oven to 375°F and place the rack in the middle of the oven.
Bake 28 to 30 minutes, or until deep golden color. Tap on the crust to hear a hollow sound. Cover with foil the last 10 minutes if it's browning too fast.
Cool 10 minutes in pan before removing from the pans to a cooling rack. Slice once slightly cooled. Enjoy with butter and jam, if desired.
Notes
Thermometer: Using a thermometer is an easy way to make sure the temperature of your water is just right. It should feel like warm bath water, around 105°F.Stand mixer: Although you can knead by hand, using a KitchenAid stand mixer with a dough hook saves you time and energy. It's a game changer for making homemade bread!Window pane test: After the dough has kneaded 8 minutes, you should be able to stretch it without it tearing and it should be fairly translucent. If it tears before stretching 1 to 2 inches, knead an additional 1 to 2 minutes. Check again. Storage: The bread will keep in an airtight container or brown bag on the counter up to 5 days .Freeze: Let the loaves cool completely then wrap in foil or saran wrap. Place in a freezer bag. Freeze up to 3 months. Thaw the night before serving.