Почему вы так усердно строите очереди? Разве вы не можете просто использовать .order_by
Предположим, это ваша модель:
class Task(models.Model):
user = models.ForeignKey(User)
priority = models.IntegerField()
created = models.DateTimeField(auto_now=True)
Затем, когда вам нужен список всех задач для пользователя, вы можете просто выполнить
qs = Task.objects.filter(user=your_user_instance).order_by('-priority', 'created')
Теперь переменная qs является итератором, который сначала перечисляет задачи с наивысшим приоритетом (и если две задачи имеют одинаковый приоритет, сначала будет указана более старая)