There should be an option to run denyhosts continuously as with the --daemon option, but then without forking it into the background (e.g. a --nofork command line option or something). This should keep it running inside the shell where it is started and only stop when the process is killed.
This is not just handy for testing purposes but it is also necessary to allow to properly run denyhosts as a daemon in OS X through launchd. As it is now, launchd will either continuously try to re-launch denyhosts or be unable to detect when it has stopped.