Fix: libcrmservice: avoid async zombie children by resending ignored SIGCHLD
Previously when executing a synchronous action, if there were existing
asynchronous actions on-going, any SIGCHLD for those child processes
would be redirected and ignored, so the processes would become zombies.
This commit fixes it by resending any ignored SIGCHLD after the
synchronous action has completed and SIGCHLD has been restored to be
handled by the previous handler, so that the asynchronous children will
be handled.
Issue exposed in 2.1.5 by bc852fe36. It introduced the asynchronous way
of retrieving metadata in controller meanwhile retaining the synchronous
way.
See discussion at:
https://github.com/ClusterLabs/pacemaker/pull/2873#discussion_r1472734082