Heat the oil in a large saucepan over medium heat. Add the shallots and onions and cook until softened, 3 to 4 minutes, and then stir in the ginger, garlic and chiles and cook, stirring, for about 1 minute. Add the beef and stir-fry until it begins to brown, and then pour in the vegetable stock and bring to a boil. Reduce the heat to a simmer, cover and cook until the meat is very tender, 1 hour 15 minutes to 1 hour 30 minutes.
Meanwhile, bring a large pot of water to a boil and cook the udon according to package instructions. Drain and rinse under cold water. Set aside.
Add the carrots to the simmering soup, cover, and cook until crisp-tender, 6 to 8 minutes. Whisk together the sugar, bean sauce and soy sauce in a small bowl until the sugar is dissolved and stir it into the soup. While stirring, pour the cornstarch slurry into the soup and cook until thickened, about 1 minute.
Just before serving, divide the noodles between 2 bowls. Stir the Romaine into the broth and ladle the hot soup over each bowl. Garnish with chopped scallions and cilantro and serve immediately.