loo, that doesn't seem typical of a detonated piston. Detonated piston have telltale signs of melting at the edges, and pitted surfaces. Which aren't apparent in your example.
It looks more like a head piston contact, or piston valve contact, and not at high rpms. coz at high rpms, all you get is a 3-20 pieces of piston in the windage tray, if the tray hasn't broken yet.
I also seen another forged piston (CP) with that kind of breakage. the piston actually hits the head at high rpm because the piston head clearance (or quench, as I've seen it referred to in some books)
Piston to deck height 0mm, while the minimum required clearances are usually 1-3mm, depending on the rod materials used.
Since people over here are the trial and error type, I think these things started not to surprise me a long time ago.
I think even some people can mess up degreeing s2 pro cams because they don't come with the typical cam setting numbers :P
Back to the b20b blowing issue.
Anyway, sometimes it's a stuck valve (valve sticks, piston meets valve, or valve drop due to retainer failing).
There's a recent one with a stuck valve (retainer is okay, it's just that the valve stays open because the valve got stuck in the guide.) The block is a goner though. the rod spun quite a few times inside it.
There's so many point of failures that it's hard to pinpoint to one source.
There's also possibility of rings seizing due to lack of proper clearances. people like to run tight ring clearances for power, but there's the risk they'll overheat if they can't get the proper clearances when they're very hot. You should try taking out the rings and bending them 90 degs. If they bend without breaking, the rings are 'fried', meaning they were heating up so much they seized. new rings that are not overheated, or 'annealed' will break if you even try bending them 45 degs. Detonation will also give the same effect, so it's not the 'end all' way of trying to see what part fails, so if the pistons have signs of detonation, it's likely the rings are not the cause, but if the piston is clean, it's likely the rings. I don't think people even check for vertical ring clearances over here.
Anyway, most ring packs in forged pistons packets need to be shaved to adequate clearances before use. I'm not sure I've seen anyone do it in a careful manner here.
Well, if people still think b20b are inherently weak, they are right.. but most are not due to the block, since if you talk to the americans.. b20b is weak because they can't stand the pressures of turbocharging.. not because they are weak that even NA setups can break them.