In a large mixing bowl, whisk together flour and salt. Add eggs, water, and milk, then beat until batter is thick and smooth. Let rest for 10 minutes.
Boil salted water in a large pot. Use a spaetzle maker or colander to press batter into water. Cook 2–3 minutes until dumplings float. Remove and set aside.
Heat 2 tablespoons of butter in a skillet over medium heat. Add cooked spaetzle and fry until golden. Set aside and keep warm.
Add remaining butter to the same pan. Add chopped onion and sauté until translucent, then add garlic and cook for another minute.
Add mushrooms and thyme. Cook about 10 minutes, until browned. Season with salt and pepper.
Stir in flour and tomato paste. Pour in wine or broth and then beef broth. Simmer until sauce thickens.
Optional: Stir in heavy cream for extra richness. Pour gravy over spaetzle and serve hot.
Notes
You can prep the mushroom gravy a day ahead and refrigerate it. It reheats well! Store leftovers in the fridge up to 4 days.