In a small saucepan, combine 1/2 cup flour with 1 1/4 cups milk over medium heat, stirring constantly until the mixture thickens into a paste (about 3-5 minutes). This tangzhong base will add moisture and richness to your dough. Transfer to a bowl and let cool to room temperature. In a separate bowl, combine 1 packet yeast with 1/4 cup warm water (105-115°F) and 1/2 cup sugar, stirring gently. Let sit for 3 minutes until foamy—this confirms your yeast is active and ready to work.
Combine the cooled tangzhong base with the yeast mixture in a large bowl. Add 4 1/4 cups flour, 2 room-temperature eggs, 1/4 cup canola oil, and 3/4 tsp salt. Mix until shaggy, then knead for 5-7 minutes until the dough becomes smooth and elastic. I like to use a stand mixer with a dough hook for this step—it saves time and gives consistent results. The dough should be slightly sticky but hold together when pressed.
Place the kneaded dough from Step 2 in a lightly oiled bowl, cover with plastic wrap or a damp towel, and let rise at room temperature for 2 hours until roughly doubled in size. While the dough rises, prepare your lamination butter by placing 1/2 cup cold butter between two sheets of parchment paper and gently pound and roll it into a 9x12-inch rectangle using a rolling pin or meat mallet. Chill this butter block in the refrigerator for at least 20 minutes—it should be cold but still pliable, not rock hard.
Turn the risen dough from Step 3 onto a lightly floured surface and gently roll into a 13x18-inch rectangle. Remove the chilled butter block from its parchment and place it on the lower two-thirds of the dough rectangle. Fold the top third of dough down over the butter, then fold the bottom third up to create a letter-fold (like folding a business letter). Press the edges gently to seal the butter inside. Fold the dough in half lengthwise and wrap in plastic wrap, then refrigerate for 30 minutes.
Remove the dough from the refrigerator and roll it out again into a rectangle, then fold it into a square shape (folding as if sealing an envelope from all sides). This second fold develops the croissant layers. Wrap the dough and refrigerate for 45 minutes. This resting period is crucial—it allows the gluten to relax and the butter to stay separate from the dough, which creates those beautiful flaky layers.
Remove the laminated dough from the refrigerator and roll it into a large rectangle (approximately 12x18 inches). While the dough rests, prepare your cinnamon filling by mixing 3/4 cup softened butter with 1 cup brown sugar and 1 1/2 tbsp cinnamon until well combined. Spread this filling evenly over the entire dough surface, leaving a small border on one long edge. Starting from the opposite long edge, tightly roll the dough into a log, then slice into 1-inch thick pieces using a sharp knife (I like to use a serrated knife and let it do the work rather than sawing). Place the rolls cut-side up in a parchment-lined 9x13-inch baking dish, cover loosely with plastic wrap, and refrigerate for 12 hours or overnight.
Remove the rolls from the refrigerator and let them sit at room temperature for 30 minutes to allow them to proof slightly and come closer to room temperature. Preheat your oven to 350°F. Bake the rolls for 40 minutes until golden brown and cooked through. While they bake, prepare the cream cheese frosting by whisking together 1 1/2 cups sifted powdered sugar, 2 tsp vanilla, 1 pinch salt, and 3 tbsp milk until smooth and spreadable. Once the rolls are out of the oven and still warm, spread the frosting generously over the top of each roll, allowing it to melt slightly into the crevices. Let cool for a few minutes before serving.