First of all, let me suggest that what you want is a script. A script that (as in your example) will perform some file/folder process, check to see that they've been performed, then call the .NET 4 framework installer, check that it installed, then call your
.msi, and check that it's installed.
You won't be able to create something that aborts future steps if an earlier step fails by relying on GPO order/precedence.
Having said that, "what order do my GPOs apply in" is a common enough stumbling block or question that it deserves answered, so... see
Application of Group Policy.
The big takeaway is:
If you link more than one GPO to an Active Directory container, the GPO processing order (priority) is as follows: the GPO highest in the Group Policy Object Links list, displayed in the Group Policy page of the Active Directory container’s Properties page, has precedence by default. If you set the No Override option in one or more of the GPOs, the highest GPO that is set to No Override takes precedence.
Oh, but that's only if you have a very simple domain and OU structure. See
Order of processing settings and
Group Policy processing and precedence if you've got a more complicated setup.
Yeah, things get unsimple and unshort pretty fast with GPOs. And domains.