In a small bowl, mix together the hoisin, soy sauce, rice vinegar, and sesame oil, then set aside.
Press the tofu between paper towels to remove as much moisture as possible.
Refresh the paper towels and press again.
Heat 2 teaspoons of canola oil in a large nonstick skillet over medium-high heat.
Once the oil is hot, crumble the tofu into the skillet, breaking it into small pieces as it cooks.
Cook for 5 minutes, then add the diced mushrooms.
Continue cooking until the remaining tofu liquid evaporates and the tofu begins to turn golden, about 3 more minutes.
Add the water chestnuts, garlic, ginger, red pepper flakes, and half of the green onions, cooking until fragrant, about 30 seconds.
Pour the prepared sauce over the tofu mixture, stirring to coat.
Cook until you hear bubbling and the sauce is heated through about 30 to 60 seconds.
Serve by spooning the tofu mixture into individual lettuce leaves.
Top with the remaining green onions, grated carrots, and extra red pepper flakes if desired.