For me the behavior is the expected (because the form was accepted and the record deleted). Perhaps you can avoid executing onaccept inside the handler like this:
def myonaccept(form):
if form.vars.delete_this_record
return
...
--

