How easy is it to upgrade Sngine, after an extensive customization?

Very simple if you did it right.
If you running for example 2.5 you will find all updated files for v2.5.1 & v2.5.2 and sometimes we changed almost all files so you can compare the “updated files” or the whole files located in the “Script” folder to your files and migrate your changes.
You can use something like this will help you well as it can compare both folders and migrate your changes
https://www.araxis.com/merge/

1- For CSS, Templates check this blog post: https://blog.sngine.com/create-new-theme-for-sngine/
2- For JS/PHP it will be good to make new files and leave the core files with no changes at all. and you can include JS easily from the templates in your theme “my_theme” & PHP files can be included easily in core PHP files.