Here's some debug for you. I installed the 'strace' RPM from the CentOS 5 repo. (btw, we need to have another discussion about this and your toolchain).
[Expert@mercury:0]# strace -p 409
Process 409 attached - interrupt to quit
[ Process PID=409 runs in 32 bit mode. ]
restart_syscall(<... resuming interrupted call ...>) = 0
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_IGN}, 😎 = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_IGN}, 😎 = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 😎 = 0
clone(child_stack=0, flags=CLONE_PARENT_SETTID|SIGCHLD, parent_tidptr=0xfff0b7f0) = 8590
waitpid(8590, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 8590
rt_sigaction(SIGINT, {SIG_IGN}, NULL, 😎 = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, NULL, 😎 = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 😎 = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 😎 = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 😎 = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 😎 = 0
nanosleep({1, 0}, {1, 0}) = 0
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_IGN}, 😎 = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_IGN}, 😎 = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 😎 = 0
clone(child_stack=0, flags=CLONE_PARENT_SETTID|SIGCHLD, parent_tidptr=0xfff0b7f0) = 8592
waitpid(8592, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 8592
It's calling 'waitpid' repeatedly on process that I can't find. It cycles roughly every 1000ms and the value for waitpid() is incrementing (as it would).
...
Here's another run of it, a few moments later: still cycling through calls to 'waitpid()'.
nanosleep({1, 0}, {1, 0}) = 0
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_IGN}, 😎 = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_IGN}, 😎 = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 😎 = 0
clone(child_stack=0, flags=CLONE_PARENT_SETTID|SIGCHLD, parent_tidptr=0xfff0b7f0) = 9415
waitpid(9415, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 9415
rt_sigaction(SIGINT, {SIG_IGN}, NULL, 😎 = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, NULL, 😎 = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 😎 = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 😎 = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 😎 = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 😎 = 0
nanosleep({1, 0}, {1, 0}) = 0
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_IGN}, 😎 = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_IGN}, 😎 = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 😎 = 0
clone(child_stack=0, flags=CLONE_PARENT_SETTID|SIGCHLD, parent_tidptr=0xfff0b7f0) = 9417
waitpid(9417, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 9417
rt_sigaction(SIGINT, {SIG_IGN}, NULL, 😎 = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, NULL, 😎 = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 😎 = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 😎 = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 😎 = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 😎 = 0
nanosleep({1, 0}, ^C <unfinished ...>