Hi Chris,
Thanks a lot for looking into this!
It's surprising that no one realised before!
I think the solution you propose would work fine and would automatise a lot of the process.
Another solution, probably the simplest, would be that the 'submit HIT' button on MTurk only works if the completion code is correct---but I don't think that's possible.
Another possibility (and it's something that's been annoying us a bit) is to have the HITs created by oTree appear on the Requester interface of MTurk.
Right now when we publish a HIT through oTree the HIT is nowhere to be seen. It only appears in the transactions.
If it were to appear in the interface, we could at least check by hand who really started the experiment and reject them through the interface.
I imagine oTree HITs do not appear on the Requester interface because they've been created through the API, but if there was a way to making them appear we'd super happy because sometimes it's a bit confusing---you have to completely trust oTree that the HIT is really there and you cannot check on MTurk.