Warm milk to 110°F in microwave or on stovetop. Mix yeast with warm milk and pinch of sugar in small bowl. Let sit 5 minutes until foamy and bubbly. If it doesn't foam, yeast is dead - start over with fresh yeast. This proves your yeast is alive and active.
In large bowl or stand mixer, combine melted butter, eggs, sugar, vanilla, and salt. Mix until smooth and combined. Add the foamy yeast mixture and stir. Gradually add flour one cup at a time, mixing after each addition until soft dough forms. Dough should come together but still be slightly sticky.
Knead dough on floured surface for 8-10 minutes by hand or 5-6 minutes in stand mixer with dough hook. Dough should be smooth, elastic, and soft but not wet. If too sticky, add flour one tablespoon at a time. If too dry, add milk one teaspoon at a time. Proper kneading develops gluten for fluffy texture.
Place dough in large greased bowl, turning once to coat all sides. Cover with damp towel or plastic wrap. Let rise in warm spot 1-2 hours until doubled in size. Press finger into dough - if indent stays, it's ready. If it springs back, needs more time. Punch down dough gently to release air bubbles.
While dough rises, prepare blueberry filling. If using frozen blueberries, keep them frozen - don't thaw. Pat fresh blueberries completely dry with paper towels. In medium bowl, toss blueberries with cornstarch, granulated sugar, and lemon zest until evenly coated. Let sit - cornstarch will absorb moisture. This coating is crucial for preventing soggy dough.
Turn risen dough onto floured surface. Roll into large rectangle about 16x12 inches and ¼ inch thick throughout. Edges should be fairly straight and thickness even. Use ruler to check if needed. Uneven thickness makes some rolls cook faster than others.
Spread softened butter all over dough surface leaving ½ inch border on one long edge. Mix brown sugar and cinnamon in small bowl. Sprinkle cinnamon sugar mixture evenly over buttered dough. Scatter cornstarch-coated blueberries evenly over cinnamon sugar. Don't pile too thick or they'll leak out. Press berries gently into butter so they stick.
Starting from long edge opposite the border, roll dough up tightly like a log. Keep even tension as you roll - not too tight or too loose. Some blueberries will squish slightly and that's normal. Roll seam side down. Pinch seam to seal. Roll log gently back and forth to even out shape if needed.
Use unflavored dental floss or very sharp knife to cut log into 12 equal pieces about 1.5 inches thick each. For dental floss method, slide floss under log, cross ends over top, and pull tight to slice cleanly without squishing. Wipe knife between cuts if using knife. Some purple juice may leak - that's fine.
Arrange cut rolls in greased 9x13 inch baking dish with small space between each. They should almost touch but not quite. Some blueberry juice may pool around edges. Cover loosely with towel or plastic wrap. Let rise in warm spot 30-45 minutes until puffy and touching each other. This second rise is crucial for soft texture. Don't skip it.
Preheat oven to 350°F. Bake risen rolls 28-32 minutes until golden brown on top and set in center. Blueberry juice will bubble up which is normal. Don't overbake or they'll be dry. Edges will be golden. Centers should look just set not jiggly. Let cool 10 minutes before glazing so glaze doesn't completely melt off.
Beat softened cream cheese and butter with hand mixer until fluffy and smooth with no lumps. Add powdered sugar gradually, beating well after each addition. Mix in vanilla extract. Add milk one tablespoon at a time until glaze reaches thick but pourable consistency. Drizzle generously over warm rolls while they're still in pan. Glaze will melt slightly into crevices and set as it cools. Serve warm or room temperature.