Sprinkle 2 tablespoons of flour over the butter and mix it together with your hands in a mixing bowl or on a work surface. Transfer the butter to a length of foil or parchment paper and pat it into a 6 inch square. Fold up the foil to make a packet and refrigerate until chilled, about 2 hours. Combine 2 cups of the flour with the salt and sugar in a mixing bowl. Dissolve the yeast in the lukewarm water (100 degrees F/38 degrees C) and set aside until frothy, about 10 minutes. Meanwhile, warm the milk and the heavy cream to lukewarm. Add the yeast, milk, and cream to the flour mixture and stir well. The dough will have a batter-like consistency. Stir in the remaining 2 cups of flour 1/4 cup at a time to form a soft dough. It should no longer be sticky. Turn the dough onto a lightly floured work surface and knead until smooth, about 5 minutes. Place the dough in a mixing bowl and cover with plastic wrap. Refrigerate for 1 hour. To begin the rolling and folding process, both the butter and the dough should be at a cool room temperature. [See Cook's Note.] Place the dough on a floured surface and roll it into a 10-inch square. Set the block of butter diagonally on the square dough. Bring each point of dough to the center of the butter square; the edges of the dough should overlap. Pinch the edges together to seal. Starting from the center of the square and working outward, use a rolling pin to roll the dough out into a rectangle. The butter should be pliable enough to roll smoothly with the dough; if it's too soft and starts to ooze out the corners, wrap the dough in plastic and refrigerate before proceeding. Roll the dough into a long rectangle, approximately 8 by 18 inches. Fold the length of dough into thirds, like a business letter. If the dough is still cool, you can continue with another fold. Otherwise, wrap it in plastic and refrigerate for 45 minutes to 1 hour. Remove the dough from the refrigerator and let it warm up for about 10 minutes before you begin rolling it out again. Position the dough so that the open ends are at 12 and 6 o'clock. Roll the dough into a rectangle, working from the center of the dough and pressing outwards. Reposition the dough as necessary to fit your work space. You should have a long rectangle for the "book fold." Fold both ends of the dough into the middle; the ends don't have to be touching, but should be close. Fold the already-folded dough in half; it will look like a thick book. Wrap the dough well with plastic and refrigerate for 1 to 2 hours. Remove the dough from the refrigerator and let it rest at room temperature for about 20 minutes. Roll the dough into a rectangle again and fold it into thirds, like a business letter. Wrap it in plastic and refrigerate for 4-6 hours or overnight. To shape the croissants, roll the dough into a 10- by 38-inch rectangle on a lightly floured work surface. It should be about 1/4 inch thick. Use a pizza wheel or sharp paring knife to trim the edges of the dough. Divide the rectangle in half so that you have two 5-inch wide strips of dough. Use a clean yardstick to mark each strip into triangles that are 5 inches wide at their bases. Cut the triangles and place them onto parchment-lined baking sheets. Chill for 15 to 20 minutes, if necessary. Starting at the base of the triangle, roll the dough up into a log; the tip of the triangle should be under the body of the croissant to prevent it from unraveling. Bend in the corners to form the traditional crescent shape. Repeat with the remaining dough. Arrange the croissants on the parchment-lined baking sheets and allow to rise until doubled in size, about 1 to 2 hours. Preheat an oven to 425 degrees F (220 degrees C). Beat the egg with the tablespoon of water to make the egg wash. Brush the croissants with egg wash and bake in the preheated oven until deep brown, 22 to 25 minutes. Cool on a rack before serving.