I think I solved my own problem, which appears to have been caused by conflicting queue attributes. The method called by the recurring job config had one queue name (which was not specified in the config of Hangfire) and this method then called another method that had a different queue (which, perhaps incidentally) was specified in the Hangfire queue. Removing the queue attribute, or setting it to the same as the ensuing method, fixed the problem - no more stuck enqueued jobs.