In a medium saucepan, over medium heat 1 tablespoon of sesame oil. Add garlic and shallot, and cook until translucent, about 2 minutes. Add carrots and cook, stirring often, until crisp-tender, about 4-5 minutes. Add mushrooms and cook, stirring often, until lightly browned and tender, about 4-5 minutes. Stir in the ginger, salt and pepper, and cook for another 2-3 minutes.
Add rice vinegar, curry paste, curry powder, sambal oelek, and stir to coat the vegetables. Stir in the vegetable broth, coconut milk and lemongrass. Reduce heat to low, and simmer for about 30 minutes to an hour.
While the soup is simmering. Drain the tofu. Cut the block of tofu in half crosswise. Then cut each section into 16 squares (4X4). Place the tofu onto paper towels, 3 layers deep. Top with 3 more layers of paper towels, and gently press to remove excess water from the tofu. Heat the remaining sesame oil in a medium, non-stick skillet over medium-high heat. Place the tofu in the pan, and cook for about 2-3 minutes on each side, or until lightly browned. Remove from the heat and set aside.
Once the soup has simmered, remove the lemongrass stalk, and stir in the tofu and spinach. Serve over white rice.