fix: use unique temp files in extractEmbedded to prevent ETXTBSY race
Multiple parallel cog build processes extracting the embedded schema-gen
binary to the same .tmp path caused ETXTBSY (text file busy) errors on
Linux. Each process now gets a unique temp file via os.CreateTemp, then
atomically renames to the versioned cache path.