It is important to use only a small amount of yeast in croissants so that the dough never rises before it is placed in the oven. If dry yeast is used, follow directions on package. If fresh yeast is used, cream it with sugar and salt to make a syrup.
Place 3 1/2 cups flour in a large bowl. Make a well in the center. Add yeast, sugar, salt, and 2 tablespoons of the butter (cut into pieces and softened) and enough cold milk to make a medium-firm dough—NOT as firm as bread dough, but not sticky. Knead dough for a few minutes, only until smooth, not elastic (You can use a stand mixer initially & finish kneading by hand on a floured surface until the dough is smooth, about 3-4 minutes.) If the dough is kneaded too long, the croissants will not be tender and flaky. Place dough to rest in the refrigerator for 10 minutes.
While dough is resting, shape butter into a flattened brick, rolling it in some of the remaining flour to prevent sticking. Place butter on a sheet of wax paper. Sprinkle it with flour and cover with another sheet of wax paper. Then roll out butter into a square ¼ inch thick. Cut square in half. Wrap pieces in wax paper and place in refrigerator.
Remove dough from the refrigerator and roll it out on a cloth well dusted with flour or a well-floured surface, making a rectangle about 3 times longer than it is wide. Brush excess flour from surface of dough. Place a piece of butter in the center. Fold ONE end of dough over butter. Place remaining butter on top. Fold second end of dough over butter. Press edges together to seal.
Place dough on cloth so that the short ends are parallel to the edge of the table nearest you. Roll out on floured cloth into a long rectangle as before. Brush off excess flour. Fold both ends to meet in the center. Then fold once more, in half, as if you were closing the pages of a book, making 4 layers.
Press all edges together. Wrap and chill for one hour. Place dough on floured cloth, again being sure that the short ends are parallel to the edge of the table nearest you. Roll out dough into a long rectangle. Fold ends to meet in the center, then fold once again as before.
Chill dough at least 2-3 hours, or until it is very cold.
Cut dough in half. Roll out each half separately into a sheet 1/8 of an inch thick (chill half not being worked on). Cut into long strips 5 inches wide. Divide strips into triangles using a sharp paring knife or a pizza cutter. Roll up widest side of the triangles toward opposite point fairly tightly, stretching slightly as you roll to make them longer. DO NOT try to shape further for now. First, chill rolls in freezer for ½ hour.
Then, removing only 4-5 at a time, make each into a thinner, longer, and more compact shape by rolling it firmly against the surface with open palm of hand. Place on a greased baking sheet, curving each into a croissant. Chill again until very cold (you could actually freeze the formed rolls at this point).
Set oven to 475°F Brush rolls with egg yolks mixed with cream. Place in preheated oven for 5 minutes. Reduce heat to 400°F Continue baking about 8-9 minutes longer, or until croissants are golden brown. Let cool (and complete carry-over baking) before eating.