Warm the milk. Heat 1 cup milk until it’s warm to the touch, about 110°F/43°C.
It should feel like a warm bath, not hot.
Activate the yeast. Stir in 2 1/4 teaspoons active dry yeast and 1 tablespoon sugar. Let it sit 5–10 minutes until foamy. If using instant yeast, you can skip proofing and mix it with the flour.
Mix the dough. In a large bowl, combine 3 1/2 cups flour, 1/4 cup granulated sugar, and 1 teaspoon salt.
Add the foamy yeast mixture, 1 egg, 1 teaspoon vanilla, and 4 tablespoons melted, cooled butter. Stir until a shaggy dough forms.
Knead until smooth. Knead by hand on a lightly floured surface (8–10 minutes) or in a mixer with a dough hook (6–7 minutes). Add small sprinkles of flour only if it’s really sticky.
You’re aiming for soft and slightly tacky, not dry.
First rise. Place the dough in a lightly oiled bowl, cover, and let it rise in a warm spot until doubled, about 60–90 minutes.
Make the filling. Mix 1/2 cup brown sugar, 2 teaspoons cinnamon, 1 tablespoon all-purpose flour, and a pinch of salt. Melt 2 tablespoons butter and set aside.
Shape the loaf. Punch down the dough and roll it into a rectangle, roughly 9x16 inches. Brush with melted butter, leaving a 1/2-inch border on the short edge.
Sprinkle the cinnamon-sugar mixture evenly over the butter.
Roll and seal. Starting from the short end, roll the dough into a snug log. Pinch the seam closed and tuck the ends under. Place seam-side down in a greased 9x5-inch loaf pan.
Second rise. Cover and let it rise until puffy and crowned about 1 inch over the pan rim, 45–60 minutes.
Near the end, preheat the oven to 350°F (175°C).
Bake. Brush the top with 1 tablespoon melted butter if you like a soft crust. Bake 35–40 minutes, until deep golden and the internal temp hits around 190°F (88°C). Tent loosely with foil if it browns too quickly.
Cool and slice. Let the bread cool in the pan for 10 minutes, then transfer to a rack.
Cool at least 1 hour before slicing so the swirl sets.