We have been experiencing similar problems with our app and I agree with Zags's answer, but just want to add one piece of valuable information that I have just found out:
The app's folder is not replaced EVERYTIME you make changes to your configuration, but it seems there are certain triggers inside a configuration change that result in a replaced app folder. So far I've found that a change to an ENVRIONMENT VARIABLE causes the app folder to be freshly built (well, sort of, considering the lack of container_commands), while, e.g. an update to, say, a scaling threshold, doesn't.