Heat a large ovenproof skillet over high heat until hot. Add the 2 tablespoons mild vegetable oil.
Meanwhile, generously season the 6 skin-on, bone-in chicken thighs with 1/2 teaspoon each of salt and freshly ground black pepper. Working in batches, if needed, sear the chicken, skin side down, until deeply golden brown, about 8 minutes. Flip and sear the other side until brown, about 5 minutes. Move to a plate. Drain the fat from the skillet.
Lower heat to medium, add the 3 tablespoons unsalted butter and let it melt.
Strew the 2 large onions, 2 garlic cloves, and 1 bay leaf in the skillet and season with salt and pepper. Cook, covered, stirring occasionally until the onions are softened, about 15 minutes. Uncover and continue cooking and stirring until the onions are deeply golden brown, 10 to 12 minutes more.
Pour the 1/2 cup dry sherry or dry white wine into the skillet, scrape up any browned bits stuck to the bottom.
Sprinkle the 1 tablespoon all-purpose flour over the onions and stir to coat. Cook for 30 seconds.
Pour in the 1 cup store-bought low-sodium beef broth or homemade beef stock, sprinkle in the 1 tablespoon fresh thyme leaves and 1/2 teaspoon ground sage, and stir to combine. Add the 1 tablespoon apple cider vinegar. Bring to a boil. Nestle the chicken into the skillet. Reduce heat to low and simmer gently until the chicken is cooked through, and has an internal temperature of 165°F (74°C), about 15 minutes. Stir in additional stock if the sauce becomes too thick or reduces too much.
Meanwhile, crank up the broiler.
Tuck the 2 cups day-old bread bread chunks around and between the chicken thighs. Top the chicken and bread with the 2 cups grated Gruyère. Sprinkle a bit of salt and pepper over the top.
Slide the skillet into the oven and broil just until the cheese is browned and bubbly, 3 to 4 minutes.
Garnish with more thyme leaves. Serve immediately.