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).
Technically there are three reasons to not do this:
- Encryption and decryption goes block by block and changes the data so you would have to program in code to halt that, then implement a partial reverse and go un-do the portion of the work that was already done.
- Everything you code, you have to test and the only code that has no bugs is the line of code you don't write.
- The social cost of adding complexity means documentation is longer, support is longer, troubleshooting is longer.
The alternative is just wipe your system, reinstall and restore from backup. For a pro, that takes maybe 15 minutes of time - plus some short waits since pros have installers cached or fast internet and can multitask. For a first time wipe and restore, you might take two hours max, plus waiting for the restore. If you're going to save days of wait and have a 2 hour to 20 minute fix, I'd say just abort the conversion is the winning move for anyone waiting days.