Long Running Job Fetching SQL Query

We use hangfire on the production for a few months, I have upgraded to latest version last week and started to see a lot of job fetching queries on production database liek below

(@queues1 nvarchar(4000),@timeout float)
delete top (1) from [HangFire].JobQueue with (readpast, updlock, rowlock)
where (FetchedAt is null or FetchedAt < DATEADD(second, @timeout, GETUTCDATE()))
and Queue in (@queues1)

We have multiple hangfire window services and multiple queues. Each window service operates only 1 queue.

Sometimes it waits more than 10 minutes in “sleeping” status on production DB. Is it normal or Do I miss something?

Today this same SQL Statement started running 11pm and take more than six hours to end. In this middle time, he blocked anothers transactions in my DB, and increased the size of TempDB more then 5gb! This never occour before, and its a strange behavior of HangFire. Someone have this same problem?

Any solution to avoid this problem?