What techniques to use when designing one or more tables to allow keeping a pending and approved version of objects?
It turned out clunky, the Slots for Playlists needed to have Foreign
  Keys to both the ID and ModerationStatus of these objects while I wish
  I would only need an ID


Why you wish to have only ID.you can have composite FK.Suppose only ID was FK then what problem it would solve ?This is not clear.


  searching for objects with a priority on their pending versions
  required using a subquery in the Where clause


This requirement is not clear to me.can you explain with example ?

Also how this table will be populated on daily basis ?

With how many rows will be pending and approved.
Do you soft delete or permanent delete ?

You can keep 2 tables . PendingImage and ApprovedImage.when user upload then record goes to PendingImage.when that record is approved then it goes to ApprovedImage.

Child table will have FK relation with ApprovedImage table.

I think only in few places you will require info from both table.
And very frequently use table in front end will be  ApprovedImage

I will modify my answer after clearing few doubts.