I've created a prototype of this protocol in Sapio for your perusal:

https://github.com/sapio-lang/sapio/blob/master/sapio-contrib/src/contracts/derivatives/dlc.rs

Feel free to tweak the test and use it as a benchmark, i tested 1 oracle with 100,000 different payouts and saw it take around 13s on a release build.

I'll be playing around with this a bit (I doubt Sapio Studio can handle a gui for 100,000 nodes), but I figured it was worth a share.

Cheers,

Jeremy