Весь смысл очереди с приоритетами состоит в том, что она сначала возвращает наименьшую запись (точнее, первый элемент, который появится в отсортированном списке). Если это не то, что вы хотите, вы, вероятно, не хотите прямой PriorityQueue.
Что вы можете сделать, это создать класс, у которого есть PriorityQueue для обычных вещей и стек для «аварийных ситуаций». Есть метод push (T), который добавляет вещи в стек, и метод add (T), который добавляет в очередь. Какой бы метод ни получил следующий элемент, он должен удалить его из стека, если он там есть, иначе он получит следующий элемент очереди.