No, probably not.
Look at your data:
20,000 polygons.
Each polygon is "thousands of points".
And you are either excluding or including the region in a composite.
The resulting region is going to be highly complex, and require significant processing to decide if a point is inside or outside - the only way to speed it all up is to simplify the region.
I'd start by finding where the 15 hours is being taken: the
Stopwatch class[
^] will help you isolate that to either the "build a region" or "draw the region" sections. Personally, I'd guess it's the former rather than the later, but I haven't looked too closely at how Union and Exclude work - it's possible that they defer execution until the Region is used, which could explain why the draw is appearing to be slow.