Rinse the lentils in a fine-mesh sieve under cold water for 30 seconds, until the water runs mostly clear. Dice the onion, mince the garlic, and grate the ginger.
Heat 2 tbsp oil in a 24 cm / 9.5-inch heavy-bottomed pot over medium heat. Add the onion and 1/2 tsp of the salt and cook for 5 minutes, stirring, until soft and translucent with light golden edges.
Stir in the garlic, ginger, cumin, coriander, turmeric, and cayenne. Cook for 1 minute, stirring constantly, until fragrant.
Add the lentils, tomatoes with their juices, broth, and the remaining 1 tsp salt. Bring to a boil over medium-high heat, about 4 minutes, then reduce to low and simmer partially covered for 18 minutes. Stir every 3 to 4 minutes and scrape the bottom, until the lentils have broken down into a thick porridge. If it gets too thick to stir, add 60 ml water.
Stir in the coconut milk and spinach, a handful at a time. Cook for 2 minutes, until the spinach is fully wilted.
While the spinach wilts, heat 1 tbsp oil in a 16 cm / 6-inch small skillet over medium-high heat for 1 minute. Add the mustard seeds and cumin seeds and cook for about 30 seconds, until the mustard seeds start to pop.
Take the pot off the heat and pour the sizzling tadka over the dhal. Stir in the garam masala and lemon juice, taste, and add salt if needed. Top with cilantro and serve hot.