in reply to guidance with a realtime log reader
The select() function can be called so as to wait until input is available on a filehandle. This is probably the key to getting the tail-like behavior you want. Take a look at perldoc -f select. The only difficult bit is setting up the bit mask.
If this is running in root's crontab, then it can just do the appropriate kill -1 equivalent (Perl has a kill() function too) to restart LDAP.