Thank you Richard. Your comments are appreciated, all the more under the circumstances. The below is not intended to take up any more of your time, but rather just to respond to the questions you raise, and hopefully head off any effort expended on red-herrings.
I was running your CodeRunner 3.7.9+, since it's a Moodle 3.3.4+. A diff showed that Ruben's master branch varies from your clean CR 3.7.9+ in very clear, and dare I say, understandable ways. And I'm working on the assumption that this did work at some point for somebody. I strongly suspect that I'm fighting some sort of quirk on my system, but it would have to be a quirk that hasn't manifested anywhere else. This despite running CR for months, and being quite progressive in testing its capabilities. My biggest obstacle, as always, is my own ignorance (I've just learned about UMD... boy, do I feel silly about my earlier comment). I have succeeded in adding AMD modules to other Moodle question types, and these are all still working. CR's ui_graph is working perfectly, which I suspect is the closest comparison? And ace is doing fine too.
My immediate challenge is to get Moodle to see the define in blockly/browser.js. I am not running in developer mode. After every change, I manually run grunt in the amd folder (with no flags), which writes 15 files without error. I then flush both Moodle and browser caches and test. At one point, I started making changes to minified code directly (in build), essentially to verify that my cache cleansing was effective. I've fiddled with pure Blockly AMD examples (independent of Moodle and CR), to satisfy myself that I understand what is required.
I've been ruminating on whether I need to grunt the blockly subfolder as well. Ruben supplies a minified version in his build/blockly folder, but I see that's not being touched by my grunt in the amd folder. Not that I'm needing to change anything in the blockly folder, but I did wonder about this. I'm also considering relocating all of the blockly files to either directly in src and build, or in the root of coderunner (as for ace). At this stage, I'm grabbing at straws. But it's not something I haven't experienced many, many times before.
Thank you both for sharing your insights, and moreover for your respective contributions to keeping every day exciting! I really am looking forward to seeing this all come together.