Wrap tofu blocks in several layers of heavy-duty paper towels. Press with a heavy object for about 30 minutes to remove excess water. Remove paper towels, pat tofu dry, and cut into 1-inch cubes; set aside.
Combine coconut milk and next 5 ingredients in a bowl; stir well with a whisk. Add tofu to coconut milk mixture. Cover and chill 1 hour.
Cook rice according to package directions, omitting salt and fat.
Drain tofu well, reserving marinade. Snap off tough ends of asparagus. Cut asparagus into 2-inch pieces.
Heat a large nonstick skillet over medium-high heat. Add peanut oil and tofu; cook 5 minutes, turning cubes until lightly browned on all sides. Transfer tofu to a serving bowl.
Add asparagus, mushrooms, and onion to pan; stir-fry 3 minutes. Add reserved marinade to pan; cook, stirring constantly, 5 minutes or until thick. Pour vegetable mixture over tofu, tossing gently. Serve immediately over hot cooked basmati rice.