1) looks just as issue. it should not be used as ajaxSingle tab has no sence. tabPanel will not be switched if will not be decoded and so on.
2) you could add immediate=true to tabs.. But not sure about how it will work(not checked locally I mean).. actually according to the request processing workflow tab has to process(decode/validate/update) current tab before switch to other and then render the new one.