This is a known bug in WFA and there since long time. I can suggest you a workaround to get away with the problem you are facing. Its really simple and easy to use.
On Execution status page, there is a button next to "Reject & Abort" called "Clean Reservation". If you press that the reservation of this job will get removed and now the job can't be resumed.
So the approver who planned to reject a workflow in "waiting for approval" after rejecting and aborting the job, can take care to press the "Clean Reservation" button after that, then this job can't be resumed any more.
see below:

You can do the same from WFA API as well.
Now cleaning reservation can have some impcat, but its limited to DataSource acquistion.
sinhaa
If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.