Well, let's see...
#1. unused id's are aesthetically ugly, I suppose, but in practice before we use up 2 billion of them we'll all be running 64 bit processors, and we'll be approaching planetary death by the sun doing a supernova gig on our ass before we run out of (2^64-1) keys.
#2. Not clear what you mean, here. Who is blocking the thread today? The thread's done when the page is returned to the user, hitting "submit" does another POST/GET and initiates another thread.
#3. If you need unique keys not tied to the DB, yes, such an approach might be useful. I've never needed such keys myself, though.
What is broken that needs solving, here?