@Override
		public void run() {
			AbstractTaskInfo first = waitingList.removeFirst();
			if (first.getGroup() != group) {
				first = waitingList.removeFirst();
			}
			if (first.getGroup() != group) {
				throw new AssertException("Top waiting item should have been new group");
			}
			GProgressBar progressBar = first.setRunning();
			group.getTaskMonitor().setProgressBar(progressBar);
			// important to setCancelledListener after setting ProgressBar as setting 
			//   ProgressBar resets cancelledListener
			progressBar.setCancelledListener(new GroupCancelledListener(group));
			if (group.wasCancelled()) {
				progressBar.initialize(1);
				progressBar.setMessage("CANCELLED!");
			}
			runningList.add(first);
		}
Uses a layered pane to create a "watermark effect" to show when the GTaskManger is suspended.
Ghidra/Framework/Project/src/main/java/ghidra/framework/task/gui/taskview/TaskViewer.java