I love good dives into an increasingly-optimized process like this. Particularly the “here’s what the output looks like after each improvement” images, they are very satisfying. If the current improved form still had some difficult edge cases, it might be worth looking into Minkowski sums https://algorist.com/problems/Minkowski_Sum.html