Don't trash a list the GE interrupt handler needs

Even after it's marked COMPLETED, the CPU needs it to start and finish the interrupt.

In Wild Arms XF (#2956), an existing completed list was not having its interrupt run correctly, because the id got stolen and overwritten by the PPGe stuff.  By the time the interrupt actually triggered (which is a scheduled event), the data was wrong/different.

Probably the original source of the problems in Final Fantasy Type-0 and 3rd Birthday.

@raven02 is the "CoreTiming::Advance()" still needed in Type-0 here?
```c++
int sceGeListUpdateStallAddr(u32 displayListID, u32 stallAddress)
{
	DEBUG_LOG(HLE, "sceGeListUpdateStallAddr(dlid=%i, stalladdr=%08x)", displayListID, stallAddress);
	hleEatCycles(190);
	CoreTiming::Advance();
	return gpu->UpdateStall(displayListID, stallAddress);
}
```

May also improve things related to multithreading, I think/hope.

Makes Wild Arms XF basically playable afaict.  Didn't try to go too far.

-[Unknown]