Heat 2 tablespoons of the oil in a deep, heavy-based, flameproof, lidded casserole over a high heat. Add the beef, in batches if necessary, and fry for 4-5 minutes, or until browned all over. Remove the meat from the casserole using a slotted spoon and set aside.
Heat the remaining oil in the pan, add the onions and garlic and fry, stirring well, for 4-5 minutes, or until softened, scraping up any browned bits from the bottom of the casserole using a wooden spoon. Stir in the beef stock.
In a large bowl, whisk the flour with a little of the wine until smooth, then gradually pour in the remaining wine, whisking until combined to a smooth batter with the consistency of thick cream.
Return the browned beef to the casserole, then pour over the wine and flour mixture. Bring to the boil, stirring until thickened, then add the Worcestershire sauce and sugar and season, to taste, with salt and freshly ground black pepper. Cover the casserole with the lid, reduce the heat until the mixture is simmering, and simmer very gently for 2 hours, stirring from time to time (may also be cooked in a 325F/160C oven).
After 2 hours, add the mushrooms, return the mixture to the boil, then cover again, reduce the heat until the mixture is simmering, and simmer for a further 30 minutes, or until the meat is tender.
Mix the mustard, horseradish and cream (if using) a bowl until well combined. Just before serving, stir it into the beef casserole.