Measure the milk, vanilla extract, honey, and instant yeast into the bowl of a stand mixer. Zest the lemon and orange directly into the bowl and whisk all of the ingredients together to combine. Juice the orange, strain, and add the juice to the wet ingredients, along with the egg yolk and two whole eggs. Whisk again to combine.
Measure the all-purpose flour, granulated sugar, and salt into the bowl on top of the wet ingredients. Attach the bowl to the stand mixer with the dough hook attachment. On low speed, mix the dough for about a minute until it comes together in a ball.
Raise the mixing speed to medium, and add the softened butter in pinched pieces. Continue to mix on medium speed for about 3 minutes until the butter pieces are incorporated, and the dough has begun to stick to the sides of the bowl.
Increase the mixing speed again to medium-high, or as high as your mixer will allow without struggling. Mix for 7 to 10 minutes more, until the dough has pulled away from the bottom of the bowl and cleaned most of the dough from the sides.
Turn off the mixer, remove the bowl from the mixer and the dough hook from the dough. With a bowl scraper, lift out the dough, quickly spray the inside of the bowl with oil, and return the dough. Cover with plastic wrap and proof at room temperature for an hour and a half. Refrigerate for 30 minutes to chill dough.
Turn the dough out onto a lightly floured counter. Divide the dough into three equal parts, and roll each piece into a rope about 1 inch thick and 24 inches long. Line the dough strands up beside each other, making sure they're all the same length, then lightly pinch the ends together on one side. Braid the dough together with a classic 3-strand flat braid, all the way to the end of the dough, leaving the strands loose at the end.
Transfer the braided dough to a parchment-lined half sheet pan. If desired, wrap the braid around a lightly greased 6-inch entremet ring or oven-safe bowl. Tuck the pinched starting end underneath the opposite end, and braid the ends of the strands over the starting end to attach the ends securely. Gently loosen strands with your fingers to tuck eggs into the braid, spacing them every two or three folds. Cover the bread with a piece of plastic wrap for the final proof, about 1 hour.
Preheat the oven to 350 F while the dough proofs. Beat the remaining whole egg for the egg wash just before baking. Once the dough is tender and slightly puffy to the touch, remove the plastic wrap and brush on the egg wash. Add sprinkles or nonpareils, if using. Bake on the center rack for about 30 minutes, or until the bread is a rich golden brown and fragrant. Serve immediately, or allow to cool and wrap tightly with several layers of plastic wrap to store for up to 1 day in the refrigerator.