Warm the olive oil in a large pot over medium heat, then add the onion and garlic and cook for 2 minutes. The onion should begin to soften and smell fragrant without taking on much color.
Stir in the carrot and celery and cook for 7 to 10 minutes. Keep stirring occasionally until the vegetables are soft and the onion smells sweet and golden.
Add the rinsed lentils, crushed tomato, broth, cumin, coriander, paprika, and bay leaves, leaving out the lemon, salt, and pepper for now. Stir well so the spices disperse through the liquid and no lentils cling to the bottom.
Bring the pot up to a simmer, skim away any foam that rises, cover, and reduce the heat to medium-low for 35 to 40 minutes. Look for small, steady bubbles rather than a rolling boil, and cook until the lentils are soft when pressed against the side of the pot.
Lift out and discard the bay leaves. The soup should now look thickened, with some lentils beginning to break apart in the broth.
Use an immersion blender for 2 or 3 quick pulses, or blend 2 cups of soup after letting it cool slightly and return it to the pot. Stop while the soup still has visible lentils and vegetable pieces, with a fuller and silkier broth around them.
Adjust the consistency with a little water if needed, then season with salt and pepper and stir in the lemon zest and a squeeze of juice just before serving. The finished soup should taste bright and savory, with a thick but pourable texture.