Put the tofu on top of a stack of napkins or paper towels, and add more napkins (or paper towels) on top of it. Finally, put a heavy skillet on top and let the skillet's weight press the water out of the tofu. Let the tofu sit like that for at least 30 minutes.
After you've pressed the water out of the tofu, cut the block of tofu in half lengthwise, then cut crosswise into 16 pieces.
In a small bowl, toss together the tofu pieces, 1 teaspoon canola oil and 2 tablespoons of cornstarch and set aside.
Cook the rice according to package instructions.
Stir together the ketchup, brown sugar, soy sauce, dark soy sauce, ½ cup water, and black pepper. Set aside. (You can also add red pepper flakes to this if you want, but I skipped that because my kids don't do "spicy" at all. IMO red pepper flakes really make it more like legit "General Tso' flavor.)
Heat the remaining 2 teaspoons of canola oil in a skillet or saucepan over medium-high heat. Cook the shallot, ginger, garlic and the white parts of the green onions for about 30 seconds, until fragrant.
Deglaze the pan with about 2 tablespoons of white wine. I like to use Shaoxing wine because I think it makes Chinese food taste more legit, but it contains salt and therefore, must be used with moderation. Cook the wine for about a minute or 2, in order to cook out the alcohol.
Set the vegetable mixture aside, wipe out the skillet. Crank the heat up to medium-high (If needed, spritz the skillet with nonstick spray)
Add the tofu (be sure to dust off and discard any extra cornstarch!) and cook on medium high heat. Try to brown the tofu on most sides -- and be gentle with it! It's easy for tofu to fall apart. I like to use a big metal spatula so I can scrape all the browned bits up at once and gently turn the tofu over.
Once the tofu is all cooked, you can add the sauce, the garlic and ginger mixture, and the green parts of the green onions to the pan. Stir it around over medium heat until the tofu has absorbed most of the sauce (careful not to burn the sauce on the bottom of the pan -- or if you do, pour a little water in.)
Spoon the tofu mixture over the cooked rice.