Fix bug in sequenced message handling

After refactoring, the maximum observed sequence number was not being
updated.
Check for cancellation in SwingWorker

Thread cancellation is cooperative; doInBackground must explicitly poll
for cancellation requests and terminate early.  Otherwise, the
SwingWorker thread pool can fill up.
Cancel SwingWorker on reset