Does a miner actually have the right to choose a transaction to process over the other?
Yes, they can even chose to NOT include any transactions at all.
Maybe, he'll probably choose as transaction with a higher transaction fee over the one with small transaction fee, thereby causing an undue delay.
OR
This is exactly how things work if you send a transaction with x fees, and just so happen that there are enough transactions that pay x+ a fraction to keep the blocks full for say 10 days, then your transaction will be stuck for 10 days.
There is an expectation which is the miner's rewards for pool miners, most pools will include their daily reward transactions in the first block they mine regardless of the fees, the other exception is some entities such as Marathon which mines "OFAC Compliant Bitcoin Blocks", in other words, they censorship transactions coming in/going to addresses that are blacklisted by the "Office of Foreign Assets Control" even if those transactions pay 10 times more fees than the rest.