Heat the olive oil in a large pot over medium heat. After 90 seconds, once the oil is hot, sauté the diced shallots for 4 minutes until they become translucent and fragrant.
While the shallots cook, bash the sections of lemongrass with the side of a heavy knife or cleaver. This helps the lemongrass release its oils and flavor more easily when cooked.
Add the lemongrass sections, garlic, ginger, curry powder, cinnamon, and bay leaves, stirring to combine. Cook for another 2 minutes until the spices are aromatic.
Add the carrots, taro (or potatoes), and sweet potatoes to the pot. Pour in the water, lime juice, tamari, and coconut sugar and bring to a boil. Reduce the heat to low and cook with the pot covered for 18-20 minutes until the vegetables are tender.
While the vegetables cook, using the tines of a fork or a small whisk, mix the coconut milk and cornstarch in a small bowl.
Once the vegetables in the pot are just fork-tender, but not mushy, add the string beans and optional bok choy, and allow them to steam in the covered pot for another 2-3 minutes.
Once the vegetables are cooked, turn the heat off under the pot and stir in the coconut milk and starch slurry. Stir in the tofu puffs, or use homemade fried tofu pieces instead.
To serve, ladle the curry into bowls. Using tongs add some rehydrated noodles to the center or side of each bowl.
Garnish with cilantro leaves and fresh curry leaves if you are using them. Serve with chili garlic sauce to taste, fried shallots, lime wedges, and fresh baguette slices on the side to dip into the curry.