Hey @jpanY7K8B,
Regarding the pileup, that's due to your Process Flow pulling the two initial Queues but not Pushing them back onto the list. If you want to make sure that they're always available to be pulled, you can check the "Leave Entries on List" box. That way, even when they get pulled due to a query, they'll stay on the list for other tokens to pull. Then you don't need to worry about pushing them back on.

With regards to your Process, I think I see where the issue is. You're moving boxes to the correct Queue, but then your Wait for Event is waiting for those boxes to exit the Queue after they've already left to be processed. So that token never gets processed.
You don't want to wait for boxes to leave the Queue -- you want them to finish processing first. From there, there are several ways you could move items to their next PreProcessing Queue. You could push them to an ItemList then have the Initial Start pull from that List. You could move the items straight to the next Queue using Process Flow or Input/Output/A-Connections in the 3D view.
Attached is an example model modified to use one of these ways.
Firstly, you've got conflicting logic in 3D and Process Flow. I'll move the incrementing of the "Step" label to Process Flow. That way, when items enter and a new token is created, we can be sure to increment once.

After we've setup the token and we determine that it still has steps to do, we can pull a Queue (while leaving it on the list). Then, we'll let the 3D objects handle it until the last Processor finishes.

It will push it to an ItemList. In Process Flow, we'll wait to pull an item from the ItemList so we can move it back to the Initial Start.

Hope this helps!