Storage of final entry values in read only table
Your queue records depend on values of other tables referenced via foreign keys. The values you lookup in this reference tables is about to change over time.

You want to be able to check on processed records with wich values they were processed, especially which lookup values where used in the processing that were valid at the time of processing.

In that case you must copy the value in your archive/log table, otherwise as you pointed out your processed-table references the current lookup values, not the ones that were valid at the time of processing.

Versioning your lookup values based on start_dat,end_date depends on if you need the history of these tables even when nothing was processed with these values. If you only need the values if there are processed records i would go with the denormalized log table structure. Much simpler.