In a small saucepan, stir milk, sugar, and butter together. Heat over low heat just until butter melts and sugar dissolves. Cool to about 100-105 F.
Pour the milk mixture into the bowl of a stand mixer.
Add the yeast and warm water.
Add 2 cups flour and salt to yeast mixture. Using a dough hook, mix on low speed for about 1 minute.
With the mixer still going, add remaining flour, 1/2 cup at a time. Mix about 1 ½ minutes, or until dough starts to clean the sides of the bowl.
Knead on low speed for about 2 more minutes, or until dough is smooth and elastic. The dough should feel soft and slightly sticky, but it shouldn't stick to your finger if you pinch it.
Place dough in a greased bowl, turning it to grease the top. Cover the dough with a clean, dry dish towel.
Let it rise in a warm place, free from draft, for about 10 minutes.
Turn the dough onto a floured surface, and divide dough into two equal pieces.
Roll each piece into a 12x8-inch rectangle.
Stir filling ingredients together, and spread 1/2 of the filling ingredients over each piece of dough, leaving a 1/2-inch border around the edges.
Roll up lengthwise, pinching seam to seal.
Cut the dough in half lengthwise, leaving a 1/2-inch uncut section at the end.
Twist the pieces of dough over each other to form a long twist, and pinch cut ends together.
Starting at the uncut end, coil the twist around, tucking in the ends.
Place 1 braid in each pan.
Cover the pans with the dish towel, and let the dough rise for about 15 minutes.
Meanwhile, preheat oven to 350 F.
Bake for 20-25 minutes, or until the bread is golden brown.
While the bread is baking, prepare the frosting.
To prepare the frosting, whisk powdered sugar, butter, and vanilla together in a medium bowl.
Whisk in enough milk to make desired consistency. I leave the frosting on the thicker side because it melts when it's drizzled over the warm bread.
Let bread cool in pan for 10 minutes.
Remove bread from pans and place on a wire cooling rack. I put a baking mat or a piece of parchment underneath to catch any drips.
Drizzle bread with frosting while warm.
Notes
Milk: Anything from skim to whole milk will work. Whole milk will make the dough richer, and skim milk will give you a leaner dough. You could also use nondairy milk, like almond milk, if you prefer.
Butter: I use salted butter in this recipe.
Yeast: If you're using active dry yeast, let the yeast sit for 5-10 minutes, or until foamy, after step 4. Then, continue with the recipe as-written.
Flour: I recommend either weighing the flour or aerating, spooning, and leveling the flour. Too much flour will give you a dry, heavy dough.