How to classify simple priority queue algorithm
You can't prove an algorithm is correct without a specification what correctness means.

This algorithm isn't a priority queue.  A priority queue has two properties: pop always removes the highest-priority item; and it resolves ties (in priority) in a FIFO fashion.  Your algorithm doesn't do that; if the first 20 items in the last are all low priority, but there's a high-priority item elsewhere, a priority queue would return the high-priority item, but your algorithm returns a low-priority item.

A true priority queue is easy to implement if you only have three priority levels: you just have three ordinary queues, one for each priority level.  When pushing an item, push it onto the corresponding queue.  When popping an item, first look at the level-3 queue and pop off of it if it is non-empty; otherwise check the level-2 queue and pop from it if it is non-empty; otherwise pop from the level-1 queue if the other two queues are empty.  This achieves $O(1)$ time for all priority queue operations.

Possibly you are looking for information on process schedulers; this is studied in the operating systems area.