Phase One: Collect Underpants
I've made some progress, but not much. The motor runs with all three phases connected, but it doesn't run smoothly. If I get up to about 40% power, it start to slow down, and changing from 20% to 30% results in a sluggish increase in speed.
Phase Two: ?
At first I thought perhaps the Hall sensor interrupt was taking too long, and that it wasn't completing before the next Hall state change, but that's not the case. At the lowest setting (1/26th or so), the time between Hall state changes is about 5.36 ms, and the interrupt handler time varies between 6.8 and 8.8 µs, three orders of magnitude faster. So that's not it.
It either has to do with the nature of our MOSFET switching (the low side is on whenever the high side is off), or the sequence is still off. My inexperienced inclination is toward the latter.
Phase Three: ?
Okay, I think I'm dumb. Here's what I did: I switched the drive phases, so the MB's A was connected to the motor's B, MB's b to motor's C, and MB's C to motor's A. This seemed to work better so I pushed it higher and higher. It started to have trouble near the top end, and that's when it dawned on me: I'm hitting the power supply's current limiter. So I upped that, and sure enough, the motor ran better. It topped out at the power supply's max of 3 A, so I think that's it. I'll need to get confirmation from Novak about the Hall sensor ordering.
Phase Four: ?!%@&%$!*$#!
Bad News: I've fuX0red something badly. The MB board won't run (it draws a LOT of current), even with nothing connected. The MCU board doesn't work if I apply power to Vin (it also draws a lot of current), but if I put 5 V downstream of the LDO, it works. I think it's time to call it a night. I hope I can salvage this. Fuck.
Other Notes
The MOSFETs have stayed ice cold throughout all of this, and the BLDC motor runs off less than an amp, unlike the brushed motor we used for the last stall test checkpoint. Running at high speed (rather, near the maximum speed setting on this sketchy controller), the Hall state change interval is about 380 µs.
Images

The board with two 4-channel scopes set up to look at both the motor phase energization and Hall sensor state.

A wider view of the same thing.

A few seconds of the Hall state. The fourth channel is motor phase A/U.

A movie showing a few seconds of the motor phase sequencing. I think the scope is causing the flashing (it's kind of a POS). The fourth channel is Hall sensor 1.