The commit record script step should do it, but I've had folks annoyed at that one too since it takes the cursor out of all of the fields.
This is what you asked for, but I'm not sure it is what you are looking for. Unfortunately I've not found a better way either.
What I do is capture the active field, THEN commit and then go back to the field.
I don't mean to hijack donjuan's thread, but I think this is in line with his OP...
The script you described looks good. At what point do you launch it? OnObjectModify so it runs at every keystroke?
OnObjectExit seems wrong since you're putting the cursor back in ...and around in circles...
well it depends, in this case, you would need 1 more script step - go to next field. THen you could add a modifier to perform only if the keystroke was a tab.