That hints at the callback that calls the setRowData and redraw not being wrapped in $entry().
CellTable defers its DOM update using Scheduler.scheduleFinally(), and "finally commands" (and "entry commands") are processed by $entry().
So, your callback schedules a finally task, but because it's not in $entry() it's not called "at the end of the event loop" as it's expected to; it's actually called at the end of the next event loop that uses $entry(), which is the case for almost anything that GWT does: event handlers, timers, etc.
So: make sure your WebSocket's callback is wrapped in $entry() (this also takes care of the GWT.UncaughtExceptionHandler btw)