Pat the meat dry with paper towels and generously season with salt and pepper.
Heat half the oil in a Dutch oven over high heat until shimmering; sear the meat in batches until well browned on all sides, adding oil as needed.
Transfer browned meat to a plate.
Reduce heat to medium-high; add onions and remaining oil to the pot and cook until softened and golden, about 10 minutes.
Sprinkle flour on onions and cook, stirring occasionally, until thickened, 4 to 5 minutes.
Add wine and stir, scraping up browned bits from the bottom of the pot.
Once wine boils, return meat and juices to the pot; add carrots, garlic, bouquet garni, 1 1/2 cups water, and demi-glace if using.
Bring to a boil, then reduce heat to medium-low and cook uncovered until meat is tender, 2 to 2 1/2 hours, skimming foam or oil from surface.
Check stew every 15-20 minutes, stirring and scraping bottom to prevent sticking; add 1/4 to 1/2 cup water as needed, up to 2 1/2 to 3 cups total.
If stew sticks, reduce heat to low; onions should break down creating thick sauce.
When done, discard bouquet garni, taste and season with more salt if needed.
Garnish with chopped parsley and serve.