Why there is no cancelling mechanism for filevault? Is there a technical reason? Once it is started you have to wait for days and it is extremely annoying.
It is not impossible in theory to create a "Cancel" button for FileVault.

Technically it is quite involved to create a "Cancel"-button. It is much more complex than for example creating a "Cancel"-button when you're copying a file. 

Usually "Cancel"-buttons gets the computer to stop doing what it is doing. These are generally fairly easy to create. In the case of FileVault, it is not enough for the computer to stop doing what it is doing - it also has to undo everything it has done during the encryption process. That can be very time consuming and would need to be able to "survive" shutdowns of the computer.

As to why it was decided not to dedicate resources to creating the "Cancel"-button, there can be only speculation, as there's no official statement from Apple on the matter (which is not surprising).