Cook eggs: cover with water, bring to a boil, then turn off heat and allow to sit in water for 20 minutes. Drain off water and add ice on top of eggs.
Fry bacon until crispy/chewy. Remove to a paper towel. Remove 3 tablespoons grease and set aside. Add 2 addl tablespoons of grease to a separate skillet over medium heat.
Slice red onions very thinly, then add to skillet. Cook slowly until onions are caramelized and reduced. Remove to a plate and set aside.
Slice mushrooms and add them to the same skillet. Cook slowly until caramelized and brown. Remove to a plate and set aside.
Peel and slice eggs.
Make hot bacon dressing: Add 3 tablespoons bacon grease, vinegar, sugar, and Dijon to a small saucepan or skillet over medium-low heat. Whisk mixture together and heat thoroughly.
Add spinach to a large bowl. Arrange onions, mushrooms, and bacon on top. Pour hot dressing over the top; toss to combine.
Arrange eggs over the top and serve.