I'm certain ::plant is going to get called before ::onloadplant.
::onTrustCheckFinished is the solution that makes the most sense. It also doesn't create a lot of needless lag. A lot of default stuff even plants the brick first before deleting it. Like, plant a brick on someone's brick who doesn't have trust with you. You'll see the brick plant and then disappear. I'm pretty sure ::onPlant is still called, despite the brick being deleted and this will remove someone's points without refunding them. It doesn't create any lag. ::onTrustCheckFinished is only called if the brick successfully plants, this is what water bricks use to create their physicalzones.