Even when you're running in a setuid process, the invoking user can send you any signal he wants. He may even suspend your process for an indefinite time by sending you SIGSTOP.
TODO: Do not assume alarm()/sleep() work. ex: ping