[One (M7) Q&A, Help & Troubleshooting] fromtheaudible:
Here's everything I just ran through again.

I was able to get ARHD 31.6 pushed to the sd card via mass storage copy/paste, despite my PC telling me it failed to copy.

Tried to flash, failed and rebooted at 30% again, right when data begins to write, which I'm guessing is the problem.

Here's the console log:

localhost:platform-tools ****$ ./adb devices
List of devices attached
HT34GW905119	recovery

localhost:platform-tools ****$ ./adb push mkfs.ext4 /tmp/
3866 KB/s (3537143 bytes in 0.893s)
localhost:platform-tools ****$ ./adb shell
~ # chmod 777 /tmp/mkfs.ext4
~ # umount /data
umount: can't umount /data: Invalid argument
~ # umount /sdcard
umount: can't umount /sdcard: Invalid argument
~ # umount /system
umount: can't umount /system: Invalid argument
~ # /tmp/mkfs.ext4 -b 4096 -O ^huge_file,^dir_nlink,^ext_attr,^resize_inode,^ext
ra_isize -m 0 /dev/block/mmcblk0p35
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
118800 inodes, 475135 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
15 block groups
32768 blocks per group, 32768 fragments per group
7920 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

~ # /tmp/mkfs.ext4 -b 4096 -O ^huge_file,^dir_nlink,^ext_attr,^resize_inode,^ext
ra_isize -m 0 /dev/block/mmcblk0p37
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1703936 inodes, 6815744 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
208 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

~ # mount /data
~ # mkdir -p /data/media/0
~ # exit

localhost:platform-tools ****$ ./adb push rom.zip /data/media/0
4424 KB/s (1189379626 bytes in 262.502s)

localhost:platform-tools ****$ ./adb shell
~ # cat /proc/emmc
dev: size erasesize name
mmcblk0p19: 000ffa00 00000200 "misc"
mmcblk0p34: 00fffe00 00000200 "recovery"
mmcblk0p33: 01000000 00000200 "boot"
mmcblk0p35: 73fffc00 00000200 "system"
mmcblk0p26: 00140200 00000200 "local"
mmcblk0p36: 27fffe00 00000200 "cache"
mmcblk0p37: 680000000 00000200 "userdata"
mmcblk0p22: 01400000 00000200 "devlog"
mmcblk0p24: 00040000 00000200 "pdata"
mmcblk0p27: 00010000 00000200 "extra"
mmcblk0p31: 04b00200 00000200 "radio"
mmcblk0p16: 03c00400 00000200 "adsp"
mmcblk0p15: 00100000 00000200 "dsps"
mmcblk0p17: 007ffa00 00000200 "radio_config"
mmcblk0p20: 00400000 00000200 "modem_st1"
mmcblk0p21: 00400000 00000200 "modem_st2"
mmcblk0p28: 00100000 00000200 "cdma_record"
mmcblk0p18: 02000000 00000200 "reserve_1"
mmcblk0p30: 034ffa00 00000200 "reserve_2"
mmcblk0p32: 05fffc00 00000200 "reserve_3"
mmcblk0p29: 06069e00 00000200 "reserve"

~ # mount
rootfs on / type rootfs (rw)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
/dev/block/mmcblk0p36 on /cache type ext4 (rw,nodev,noatime,nodiratime)
/dev/block/mmcblk0p37 on /data type ext4 (rw,nodev,noatime,nodiratime,data=ordered)

I'm thinking it's a lost cause. :(