I had initially assumed that ping was already doing something like your second suggestion, but apparently not. I've already got a decent scheduling system in place, so setting it up do do either of those every n seconds would be relatively trivial.
I agree that it seems odd for DBI not to have a generic method (implemented by each DBD) for dealing with this sort of thing.
Comment on Re^2: Preventing database handles from going stale