digiKam[1] might be for you. I only tried it briefly, but I think it covers most of the requirements out outlined.
I personally landed on Peakto[2], since it has the unique ability to create a unified catalog across multiple CaptureOne sessions, but it's probably overkill for what you need.