Slice the beef thinly against the grain into small pieces. The pieces should be smaller than beef slices in stir-fries. Toss well with all other ingredients in the "For the Beef" section (salt, pepper, garlic, cornstarch, oil). Set aside to marinate for about 15 minutes.
Place a heavy pot with a wide bottom over medium heat. Once it is hot, add oil to coat the bottom. Add onion slices and sauté for 1-2 minutes until the onion is fragrant and has a light color.
Add the remaining minced garlic and sauté briefly until the garlic is fragrant.
Increase the heat to medium-high and add the beef. Spread the meat on a thin layer and brown it until the outside is still slightly pink. Toss the beef with fish sauce, and then transfer the meat mixture to a plate, leaving just a few onion slices and small bits of beef in the pot.
Reduce the heat to medium and add half of the tomato wedges. Cook for about 4-5 minutes, or until they are softened. Adjust the heat as needed.
Add water to the pot. Also add the remaining salt, then let the soup come to a boil. Skim off the foam if needed, and add the remaining tomato wedges along with the lime juice.
Reduce the heat to a simmer and cover the pot with a lid slightly askew. Simmer for about 5 minutes.
Remove the lid and increase the heat. Add the sautéed beef mixture and chili (if using). Give the soup a quick stir, and adjust seasonings to taste.
Quickly add the chopped scallion and Vietnamese coriander. Give it another quick stir, and the soup should start to boil again. Transfer to serving bowls and serve right away.