Follow-up: My patch file was incomplete. It only contained the raw content of the git diff:
git diff arch/arm/boot/dts/sun8i-h3-orangepi-one.dts > 0003-ARM-dts-sun8i-orangepi-one-enable-usb0-host.patch
Notably, it did not include any of the additional information present in other patch files already in the DEVICE directory:
So I added a header in that format to the beginning of my patch file.
Interestingly, the absence of that header didn't seem to make any difference when the patch file was in the PROJECT directory, but when it's in the DEVICE directory it seems to be mandatory.
Now that that is behind me, I wonder -- is this the sort of thing that could also be achieved using a dto? Typically, I've seen dto files used only to do something like take a "disabled" object and turn it into an "okay" object. But in this case, I am taking an already "okay" object and changing one of its properties ('dr_mode = "otg"' to 'dr_mode = "host"').