Wow, weirder, "updating reference tables" suggests it's updating FKs, but you're not doing that.
How long does this take?
select cp.id
from update claim_provider_association cp
join provider_attributes_lookup pa on cp.provider_attributes_lookup_id = pa.id
and pa.old_provider_id is not null
where cp.provider_id is null;
If that's a lot faster, you have a clue: InnoDB is checking a billion FKs. Then disabling FKs for the transaction might help.
Similar workaround: Explain thinks there are 30 rows to update, so run the above query to find IDs of those rows, then run an update query using just that subset.
Again: What is the MySQL version, what is RAM, what is innodb_buffer_pool_size, is the disk fast, is the hard disk swapping (15 hours, it must be), did you try Force Index?