1. For marinade: In a large bowl, combine the wine, cognac, onions, carrots, parsley, bay leaf, garlic, peppercorns and salt. Mix well and add the cubed beef. Cover and marinate in the refrigerator for up to 2 days.
2. Preheat oven to 300°F.
3. Strain the meat from the vegetables and marinade; reserve marinade. Dry meat with paper towels. Heat 2 tablespoons of the oil in a large skillet over medium high heat. Add the meat and saute for 10 minutes, or until browned on all sides. Transfer meat to a seperate bowl with a slotted spoon and set aside.
4. In the same skillet, add the bacon and saute until lightly browned. Transfer the bacon to the bowl with the meat. Drain the skillet and return it to the heat. Pour a cup of marinade into the skillet to deglaze the skillet, scraping the bottom to loosen up all the little bits. Return this liquid to the reserved marinade.
5. Heat the remaining oil in the skillet. Add the onion and carrot from the marinade, along with the additional onion that you've chopped, and saute for 5 minutes, or until tender. Transfer this mixture to the bowl with the meat and bacon, again using a slotted spoon, and return skillet to the heat. Add the flour to the skillet, combining with the oil and stir until well mixed and brown, about 2 minutes.
6. Now add the tomato paste, garlic, beef broth, reserved marinade and salt and pepper to taste. Bring to a boil and whisk to remove any flour lumps. Add this to the meat and vegetable mixture. Place entire mixture into a 9X13 baking dish.
7. Bake at 300°F for 3 hours, stirring occasionally and adding water as needed. Season with salt and pepper to taste.
8. About 15 minutes before meat is done baking, melt butter in skillet over medium high heat. Add the mushrooms and saute for 5 to 10 minutes, or until lightly browned. When meat is done, add the mushrooms to the meat mixture, stir well and let sit for about 15 minutes.