CurveBoolean is long-winded for this. Here’s another way that seems reasonably quick. It uses the idea of making the strips between your curves and their offsets into surfaces (if you do this again, speed up the process by creating surfaces by offsets, rather than creating parallel curves).
Create a planar surface slightly larger than the extents of the curves. Select the surface and split it, selecting all the curves as the splitters. Delete all the redundant parts of the surface, leaving the narrow strips. Select all the surfaces and run PlanarUnion to join up the overlaps.
If you want to get back to curves, select all the surfaces and use Silhouette to extract the outline, then select surfaces and delete them.
This took about fifteen minutes.
And this is the result:
P.S. I also had fun extruding the design into solids and rendered it with a Substance nickel finish: