Make the curry. Heat the oil in a 12-inch sauté pan over medium-high heat. Once hot, add the cumin and mustard seeds and cook until popping and cumin seeds start to turn golden, 45 to 60 seconds. Add the garlic, ginger, and serrano peppers, and cook for 90 seconds, stirring frequently*. Add the turmeric, coriander, paprika, cinnamon, nutmeg and curry leaves and cook for 30 seconds.
Deglaze the pan by pouring in the coconut milk, scraping up any browned bits with a spatula. Add the tomato sauce and sugar and bring to a rapid simmer. Stir occasionally and simmer for 3 minutes.
Add the cauliflower, salt, and pepper, and spoon the curry over the cauliflower. Cover the pan with a lid and adjust the heat to maintain a decent simmer. Cook for 12 to 13 minutes, opening the pan to stir occasionally, until thickened a bit and the cauliflower is fork-tender.
While the cauliflower is simmering, prep the tofu.
Bring a large pot of water to a boil.
Drain the defrosted tofu. Holding it over the sink, squeeze out as much excess water as you can without squishing or breaking it apart. You may want to wrap it in a dish towel, as it can get cold.
Slice tofu vertically into 4 slabs. Take a few paper towels or clean dish towel and gently press down on the tofu slabs to remove more water.
Slice each slab in half, lengthwise, so you have 8 vertical slabs. From there, chop the tofu into ¾-inch cubes (about 48 cubes for a 14-ounce block).
Boil the tofu. Once the water is boiling, add 2 teaspoons sea salt (or 4 tsp Diamond Crystal kosher salt).
Use a slotted spoon or spider tool to lower the tofu into the boiling water. Once the water comes back to a boil, boil the tofu for 2 minutes. Scoop out the tofu using the slotted spoon and drain well.
Assemble. When the cauliflower is tender, add the garam masala and spinach to the curry. Stir and briefly cook until the spinach is wilted.
Nestle the boiled tofu into the curry and toss to combine.
Turn off the heat, stir in the lemon juice and cilantro, and season to taste with salt as needed. Serve over rice or with flatbread (but keep leftovers separate from rice, or the rice will eat up all the sauce).