Rinse lentils and bring to a boil in a large pot of water; reduce to a simmer and cook, uncovered, until fully tender – 30-45 minutes depending on type and how fresh they are.
Meanwhile, heat oil over medium heat in another large pot or dutch oven. Add onion and cook until soft and golden, about 15 minutes – don’t rush this step; reduce heat of onions are browning too quickly.
Stir in garlic and ginger, cook 1 minute. Add mustard seeds, turmeric and cayenne; cook until fragrant, about 2 minutes (be careful, mustard seeds may pop). Stir in tomatoes and coconut milk; reduce heat to low and simmer until lentils are finished cooking.
Meanwhile, preheat oven to 350 degrees F. Spread coconut ribbons on a baking sheet and toast until golden brown, approximately 6 minutes (but watch closely, they burn fast!).
Add fully cooked lentils to coconut sauce and give a good stir. Season with salt by pinches, then simmer on for 10 minutes. Stir in cilantro. Serve topped with toasted coconut and sprinkled with more cilantro.