Not really sure if this is what you’re after. Solid union isn’t the right tool for surfaces. In this case, you can use Region Difference directly with the offset curve output.
Thank you @martinsiegrist! Sometimes the surfaces are at different level, then brep|plane component won’t work. Any suggestions for solving this? I tried linking a plane for each surface, still not working.
With the inputs at different levels, I also ran into the issue with the curves not offset in the right direction. However this is not a big deal. Here’s an updated solution