Preheat oven to 350 degrees. Fill a bowl with ice and water; add onion; let sit for 30 minutes. Drain, and set aside. Place bread on a baking tray; toast, tossing occasionally, until golden and crisp, 10 to 15 minutes; set croutons aside to cool.
Place beets in a small saucepan, and cover with cold water. Bring to a boil, and cook until tender, about 30 minutes. Drain; cool until able to handle. Peel, and cut into 1/2-inch cubes; set aside.
While beets are cooking, make dressing: Heat 1 tablespoon olive oil in a medium skillet over medium heat. Add shallot, and cook until tender, about 3 minutes. Whisk in honey mustard, vinegar, sugar, salt, and pepper. Cook, whisking constantly, until sugar has dissolved, about 1 minute. Slowly whisk in remaining 3 tablespoons olive oil. Reduce heat to low; keep dressing warm. Add cooked beet cubes to dressing, and stir to coat.
Place onions, spinach, and mushrooms in a bowl. Drizzle with warm dressing; toss to coat evenly. Garnish with croutons. Serve warm or at room temperature.