Ok, so after much gnashing of teeth and yelling [Word Filter Evasion] a lot (and calling the TAC), I've figured out how to churn out multiple ArubaOS upgrades from cpboot (before the normal boot process).
Pre-setup: This method has only been tested with the 650 series controller (I'm going to try with a 3400 and will post back with what I find out), and as such, will only apply to this controller (for now). This method is intended to facilitate upgrading a lot of controllers (or just one, if that's all you need) very quickly to the latest (or any prod version your establishment is running) version of ArubaOS, without having to go through the normal process of booting the controller up, assigning it as master / local, etc. etc; this essentially skips the WebGUI method and gets straight to it.
Pre-setup includes an L2 / L3 switch (something that you can use with VLANS or not). Plug in your laptop or desktop to the switch, and plug in an eth cable to port 1 on the 650 controller. Just to clarify, there are 4 ports on the front labeled as such (0 | 1 | 2 | 3), so plug it into the second port, port 1. This will be known as xls_gmac1, which is important later.
Now, with PuTTy ready (or some other serial / console connection, like screen \dev\tty.usbserial 9600 for Mac, assuming correct driver installation), power on your controller and hit Enter to interrupt the normal boot process, which will take you to a cpboot> prompt. This is where it all happens.
On your laptop, you need to run a TFTP server. I use Solarwinds, but there are a million nice and neat applications you can run, so pick your favorite. Move the ArubaOS version you want to use into your TFTP server root folder, and you're set.
Now, onto the actual task at hand. You have to statically assign an IP on your laptop first, as your laptop will serve as your TFTP server, so when you initiate the upgrade command on the controller, it'll look for the TFTP IP address. I'll use examples for the next part, which are the actual commands you'll use.
In cpboot>, type the following (1/2):
setenv ipaddr 192.168.1.2 (the controller's temp IP address. You can change this later)
setenv netmask 255.255.255.0
setenv gatewayip 192.168.1.1 (this doesn't matter really, as you don't need an internet connection in order to do this, but it's still good to have)
setenv serverip 192.168.1.3 (this is the address of the TFTP server, so in this case your laptop, but if you have a TFTP server on your network, then use that IP)
That's the first part of the command sequence. The next part will seem strange, so I'll explain it afterwards.
In cpboot>, type the following (2/2):
setenv ethact xls_gmac1
setenv ethprime xls_gmac1
Apparently the xls_gmac1 applied to a port interface on the controller, and ethact (ethernet activity) and ethprime (primary associative ethernet port to use on the controller) are used to designate which port on the controller should be used to facilitate what we're about to do. xls_gmac0 (in theory) should associate with port 0 on the controller, and xls_gmac2 with port 2 (so on and so forth), but I haven't tested it with any of the other ports, so just use xls_gmac1 and you should be ok. Once you've done this, you can execute the final command:
upgrade 0 ArubaOS_6xx_6.1.3.7_37112 (where 0 = which partition will be upgraded, 0 or 1, where 0 is normally the default partition, so it's best to upgrade that one, and whatever the filename of the ArubaOS image you have afterwards). It should then take its sweet time in upgrading, in which case you'll go back to the cpboot> menu. Type save, and then reset. It'll boot, and during the boot up phase, you should see your Aruba version info listed.
As I said earlier, I haven't tested this with other controllers yet (the 3000, 6000, and 7000 series), but I have everything but the 7000 available and will post a process for those bigger controllers.
If anyone has any problems or questions, please post them here and I'll help you out.
Thanks!