Season each steak generously with salt and pepper, making sure to rub the salt and pepper into the sides of the steak.
In a cast iron skillet, heat the vegetable over high heat until smoking hot. Lay the steaks in the pan and cook for about 2 minutes. Flip the steaks, then add the butter, swirling it around the pan. Using a large spoon, scoop the melted butter over the tops of the steak, basting them continuously. Cook for about 2 minutes to get medium rare. (Check the steaks with an instant read thermometer if you have one; you want an internal temperature of about 135˚F (55°C).) Set the steaks aside on a cutting board to rest.
Wipe out the skillet and heat the remaining 2 tablespoons of oil over medium-high heat. Add the onion and mushrooms and sauté, stirring constantly, until caramelized, about 20 minutes.
Using a serrated knife, slice the top off the bread and scoop out the insides to create a bread bowl. Nestle one steak into the bottom of the bread bowl. Layer the cheddar cheese evenly on top. Add the caramelized onions and mushrooms and use a spoon to spread them evenly over the cheese. Top with the spinach, then the bacon, then the Swiss cheese. Finally, put the second steak on top, tucking it under the lip of the bread bowl. Cover with the bread lid and wrap the entire loaf in foil.
Place the wrapped sandwich in the fridge and put a cutting board on top of it. Stack books on the cutting board to compress the sandwich. Chill in the fridge for at least 5 hours.
Preheat the oven to 250˚F (120°C). Remove the foil from the sandwich and place it on a baking sheet. Bake for 20 minutes, until the bread is slightly crisp.