Thanks for everyone's help so far, but something is definitely busted in my ACS installation.
I grepped for any other scripts with an edit_data block and found a bunch in bug tracker. So I mounted an instance of bug tracker and ran into exactly the same problem: no updates are ever done via forms that use form builder -- unless bug tracker is coincidentally broken in the same subtle way as my script (not likely)
Anyone have a clue where to start looking for the problem?