Never tried this (and it's completely off the top of my head), after a certain amount of time (depending on when things start bogging down), and depending on what the program is actually doing, have it start a new copy of itself running in the background and immediately shut itself down.
That will have the effect of freeing up all the resources allocated to the program that it never quite got around to giving back to the system.
As for whether it will hog the CPU or not depends on the priority that was given to it; the OS should be smart enough to allocate CPU time among competing processes depending on their priority and the priorities of any other processes that are running.