Thanks to Maxime's answer, I was able to figure out my issue as well.
When running :gwtDev and :gwtSuperDev additional files are created inside the /war folder (/WEB-INF/classes/, /projectName/ and /lib/). This creates no issues at this point when using the built-in Jetty Launcher.
However, when I wanted to create a .war file and deploy manually, I would use the :war task. The earlier mentioned additional files from /war are then copied into the /build folder and mixed with freshly generated files of the same name. This results in the .war file having duplicates of the same files, or old files that you thought were deleted, or files containing out of date content.
In my case, my war file was getting *.devmode.js + more copied into it when they shouldn't have existed in there.
I fixed this problem by adding the following three exceptions to which folders from the /war directory are included in the .war file.
war {
rootSpec.exclude("**/WEB-INF/classes/")
rootSpec.exclude("**/outer_planets/")
rootSpec.exclude("**/lib/")
}