The night before: Stir together the beef stock, soy sauce, balsamic vinegar, tomato paste, thyme, black pepper, and garlic. Put the beef in a gallon-size Ziplock bag.
Pour the marinade into the bag with the beef. Seal the bag, pressing out as much air as you can.
Allow the beef to marinate in the refrigerator overnight. Flip it a few times, allowing the marinade to penetrate the beef from all sides.
The following evening: Remove the beef from the marinade and pat it dry. Set your Instant Pot to “high sauté” and add butter and avocado oil. Once the butter melts, add the thinly sliced red onions and let them soften.
Push the onions to one side of the pot and add the beef. Allow the beef to brown for a couple of minutes on all sides.
Next, turn the pot off and pour the marinade from the bag into the pot. The liquid level should reach the minimum required for pressure cooking by the Instant Pot. Put the lid on the pot and close the vent.
Set the pot to high pressure on the bean/chili setting and set it to pressure cook for 5 minutes.
At the end of the cook time, quick release the pressure and use tongs to lift the London broil out of the liquid.
Check the temperature of the thickest part of the beef. It should have reached a safe minimum internal temperature of 145°F (63°C). Let the beef rest for 10 minutes on a plate.
To make the gravy, set the Instant Pot to “high sauté.” Let the marinade and onion mixture bubble for 5 minutes, and then whisk in the xanthan gum. Let the gravy thicken over the heat for about 5 minutes, whisking occasionally.
To serve: Thinly slice the beef against the grain and ladle on the gravy.