There isn’t any specific reason, it’s just that we hadn’t gone through the update process in a while. You’re right that we should ideally have caught this before it went EOL.
1.28.1 is the latest ‘stable’ version, so that’s what we went with. 1.29.x is the higher-churn ‘mainline’ version, and we don’t currently have a need for any of those new features.
Thanks for raising this. We’ve now finished bumping the tag in the templates, so running another ./launcher rebuild app should give you the new nginx version.