We experience the same problem.
I think it really depends on where they particular job was at the time the cancel was issued.
I have noticed that BE will finish the current 'task' before cancelling, but not always.
For instance, if the job is doing a 'Backup Scan' it will finish the scan before cancelling.