Just side load an Android app called "NetGuard" which is a free firewall app on Android (though it's only available on the Android phone, but you can still sideload it on the Shield TV). Download the NetGuard APK file and then install it on your Shield TV using a 3rd party file manager app (you can find the NetGuard .APK file on Google search, or you could use an APK extractor and extract the NetGuard app from your Android phone after downloading it from the Play Store). You might need to also download a 3rd party launcher to see the side loaded Android apps as it will not appear on the stock Android TV home launcher. Then open the NetGuard app and disable network connections to the "Software Upgrade" app, then switch on the NetGuard toggle and it will block the "Software Upgrade" system app from accessing the internet, therefore it cannot download the software update and then prompt you to install it with an annoying pop up screen message.
If you get a software update message and the software update gets downloaded, just go to the app settings of "Software Upgrade" and delete the app cache and data.
Once you have the NetGuard app enabled, it should auto start every time you boot up the Shield TV and it will always run in the background. I suggest that you regularly open the NetGuard app and have it in the background so just incase Android OS puts it to sleep.
Additionally, I suggest you go to Google Play Services and the Google app and disable all the app permissions to access storage or change system settings (though if you use things like Google Assistant or voice search, you may need to leave the microphone permission on). Do the same for the other Nvidia apps which you might think may try to control or change settings on your Shield TV without your permission.
I'm still on Android 8.0 on my 2017 Shield and I'm happy with it. I don't really need any extra features and nothing needs to be fixed. This is the only method I found to work. I have tried to delete the "Software Upgrade" app package from my computer using Android ADB but I just couldn't do it (maybe Nvidia blocked it). So the firewall method is the only option. I don't know if Nvidia made changes and blocked this method in newer updates, but try it and let me know if it works.