I just finished adding retry capability to the DHCP library. It will, by default, resend DHCP requests every 2 seconds, and timeout after 60 seconds. I've also removed the need to declare a Dhcp variable. Take a look at the included example to see how to use the new library.
Download here: Arduino DHCP Library v0.2
I hope this release solves the outstanding issues I know about. I'm also looking for feedback on additional enhancements - ARP conflict detection, lease renewal, etc. If you know of something that doesn't work or you would like to see added, please let me know.