Ended up sorting it out myself with a little help from the IRC channel, in case you're here from Google or something here's what I did:
1) Set up a Debian VM to build in
2) Follow the instructions over at https://wiki.openwrt.org/doc/howto/build and https://wiki.openwrt.org/doc/howto/buildroot.exigence
2.1) For the most part I did everything according to those pages. Since I wanted my custom image to have the same packages as the default image, it was a bit tricky (and laborous) to find and select the exact ones I wanted. I'm told you can just select the right architecture and model for your router and you should automatically get everything it needs to function, but even after doing that I was missing some packages (for instance, the kmod-ath10k driver for 5G WiFi functionality) and had to rebuild the image with those packages manually selected, so yeah I don't really know. You'll probably want to include Luci in your packages, as it's missing by default
2.2) Drop this patch into <openwrt sources directory>/target/linux/ar71xx/patches-3.18/ — name it something like archer-c7-v2-rfkill-fix.patch, it's very important that you drop it in the correct directory or else the file paths in the patch won't work and you'll get an error when compiling. If you're compiling a version other than 15.05, the numbers after the patches directory might be different. In this case you might want to check that the file the patch modifies still has the correct format.
--- a/arch/mips/ath79/mach-archer-c7.c
+++ b/arch/mips/ath79/mach-archer-c7.c
@@ -50,7 +50,7 @@
#define ARCHER_C7_GPIO_LED_USB1 18
#define ARCHER_C7_GPIO_LED_USB2 19
-#define ARCHER_C7_GPIO_BTN_RFKILL 13
+#define ARCHER_C7_GPIO_BTN_RFKILL 23
#define ARCHER_C7_GPIO_BTN_RESET 16
#define ARCHER_C7_GPIO_USB1_POWER 22
2.3) If you're compiling 15.05, you might run into some errors because it fails to retrieve source packages due to those packages having moved (you'll get a 404 error). In this case either find the appropriate package yourself using your web search engine of choice and place it in the <openwrt sources directory>/dl/ directory, or correct the URL in the Makefile of that package.
3) After your image compiles with no errors, you'll find it in the /bin/ directory of your sources directory. The file you want is called something like "openwrt-ar71xx-generic-archer-c7-v2-squashfs-sysupgrade.bin".
4) Get a list of your currently installed packages by eg. copy-pasting them from the Luci software list. Upgrade your device with this file as per https://wiki.openwrt.org/doc/howto/generic.sysupgrade
5) After upgrading, check the currently installed packages on the system and compare them to the list you made earlier. If you're missing something reasonably important-looking, you can just enable it in your build config and rebuild the image, then upgrade to that new image.
6) Try flipping the rfkill switch on the back of the device, it should be working now. In my case the functionality of it is reversed, with the "on" marker actually turning WiFi off and vice versa. Changing this is a matter of fixing the script in /etc/rc.button/rfkill, but it's such a minor non-issue that I didn't bother figuring out how to do that.