Cook bacon over medium heat in a large heavy cast iron pan or Dutch oven or similar large pot, about 10 minutes. Add onion, carrot, and celery to the pan and cook until just starting to brown. Add garlic and red pepper flakes, cook 1 minute. Remove bacon and vegetables to a paper-towel lined plate; set aside.
Pat meat dry with paper towels (removing moisture helps meat to brown rather than steam). Season meat with salt and pepper, and add to pan. Brown meat, in several batches, over medium-high heat. Do not move meat around while it cooks - let it brown thoroughly, only turning as needed. Remove batch of meat to plate while browning the next batch, until all the meat is browned.
After browning last batch of meat, add tomato paste and let cook, stirring occasionally, a few minutes. Add ½ cup of wine and scrape any bits of seared meat from bottom of the pan as wine simmers. Return remaining browned meat and cooked vegetables to the pan, along with a ½ teaspoon salt, red pepper flakes, fresh thyme, bay leaf, the remaining 1½ cups wine and enough broth to bring liquid about halfway up the ingredients. At this point you can also transfer ingredients to a slow cooker and cook on medium for 6 to 8 hours until meat falls apart easily.
Heat oven to 300°. Bring liquid to a gentle simmer, remove from heat, cover and place in oven. Cook, covered, about 2 ½ to 3 hours and until meat is tender. The meat is ready when it falls apart easily. Tougher cuts of meat may remain very firm and chewy almost all the way through the cooking process and finally begin to fall apart right at the end, so have patience. You can also make this dish up to 3 days in advance (or cook and freeze).
Just before serving, melt butter in a sauté pan over medium heat and cook mushrooms until golden and browned. Once meat is done, stir in mushrooms and return to heat about 10 minutes until heated through. Taste and adjust seasoning, adding more salt or pepper, as needed. Garnish with chopped fresh parsley. Serve with fresh crusty bread and good butter.