fix an annoying abstraction violation in uth

this also wasn't using locking correctly: it never released the locks
fair point. I opted to fix `submit_form_locally` in the branch I'm working on to return useful info, so i'm going to leave for now