I would solve the problem with microdisplacement. I think you're in the ballpark.
My model is a cube that I scaled down on the Z axis and gave some loop cuts to.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/7KIIX.png)
Then I grabbed the top and bottom outer edge (in edge select mode) and beveled with a couple divisions.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/dNSSc.png)
And that's it, slap some adaptive subdivision on there and head to the node editor. Set your object's material to Displacement and Bump.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/EY86j.png)
In the shader editor, you can use a Vector Math node to multiply the object coordinates by itself a couple of times and then run that output through a Gradient Texture set to Spherical to generate this interesting output.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/FmbCc.png)
You can use a Color Ramp here to define the cutoff between the jagged edge and the smooth plane. For whatever reason I used an Invert node here, but you can just flip the Color Ramp around.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/zftDf.png)
This is the scale input of your Displacement node. Multiply it by a value that makes sense(0.04?), plug it in, and put all of this aside except for the Displacement node.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/rSfia.png)
Now grab some fresh coordinates and start with a Voronoi texture as you first suspected. I've used a Mapping node to squish it on the Z axis which I think is more accurate to the reference. If you plug this into the height input, and plug the Displacement node into the Material Output we get immediate results because we've already set up our scale.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/MXvj2.png)
With some adjustment to the Color Ramp from before, the scale of the texture, and the Midlevel of the Displacement node, maybe this is enough for what you need.
The thing to know to actually use this is that since we're using Object Coordinates if you need to scale the object and Apply Scale, you have to go into the shader editor and make an inverse change to the Mapping nodes. This is kind of an annoyance and a failing on my end because I gave up on making this work with generated coordinates.
For example, if you've scaled this model on the X axis, you also need to decrease the scale of the X axis on the bottom Mapping node. Here's a view of how our change in the Mapping node is represented in rendered view. (This does get fiddly and again I apologize.)
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/uqoWI.png)
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/S4xm3.png)
You can, of course, go much further than this.
...And I have...
Around here you start getting some good results.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/CWqig.png)
Just kidding, here's the blend file.
![](https://cdn.statically.io/img/blend-exchange.giantcowfilms.com/embedImage.png?bid=3R8d4VNa)
This is what this crazy graph looks like set to Bump Only.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/YYJK2.jpg)
And here's a showcase with displacement and RTX ON.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/qu8ma.jpg)
Every instance of the object is slightly different.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/7qfFv.jpg)
Microtexture in the Bump layer.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/H5bgf.png)