I would write that as a program and launch it as a daemon. In fact I wrote a few blog entries about how to create a daemon and manage it, as well as how to clean up zombies.
http://www.linuxquestions.org/questi...ocesses-35540/
http://www.linuxquestions.org/questi...zombies-35575/
To correct your perspective though. Zombies do nothing. They exist merely because the parent which forked them is still around, the former process which became a zombie terminated. In terminating, it sent a signal to the parent process. I believe this is part of the System V closure architecture. If the parent process never checks for that signal, the defunct process remains as a zombie. If the parent process itself exits, then any zombie processes attached to it will be resolved. In the end, the zombie is not an active process, it does nothing except to hold a place in the system. Ultimately they're not good to have.
My recommended architecture would be to write a daemon, run that in the system and use that to perform you timing for when you wish to launch your child process. Once the time, or conditions are correct for launching your intended process, use fork() and exec() to do this, and then have your daemon periodically check for signals from that process to clean up the zombie state.