Wrap PE execution in processes so that PE instances can be moved around and assigned to another process if necessary, or a new instance can be assigned to a process when it becomes available.
Processes should be available as a pool processing whatever PEs they've been assigned.