I found out something more about this weird bahavior. Actually onstar is invoked multiple on every ajax untill an ajax request which results in rearraging of the datatable data like sorting or pagination.
So if the ajax does not change the data in datatable, a4j:status is invoked multiple times but as soon as there is a single sorting or pagination request, it stops working.
Issue Resolved!!! i cannot believe something so small can cause so many issues. basically I observed that even the smallest JS calls like oncomplete="alert(''hi)" were not working on my page. Also sorting, pagination was causing JS to not bee invoked, the behavior was little odd. a4j:status was working only once before you sort or paginate. Tooltip was not working inside datatable after sorting or paginating.
All these issues are resolved after I replaced <h:commandbutton> with <a4j:commandbutton> throughout the page. it is strange but works for me .