Sam and I came up with this while working on a project together that had the potential to generate very long-running queries. We tried a few other things before doing it this way, and they all had downsides. The potential for trouble when you use unsafe signals with XS code is pretty high. If forking really bothers you, you could do a more complicated approach with a prefork server.
You do mention that you already use the unsafe signals approach. If that's working for you, what more were you looking for?