Reducing the processing time of instances at critical activities is essential for many application domains. We refer to an activity as being critical if due to restricted resources assigned to the activity, the arrival of a certain number of process instances might lead to a waiting queue. So far, queuing has been adopted for process optimization in a merely static manner, i.e., the strategy in which order the instances are processed from the queue is fixed. We argue that determining the processing strategy for instance queues at runtime (dynamic queuing) offers the potential to reduce the processing time at critical activities. The core idea is that instances arriving at critical activities are first clustered based on similar features and are then distributed to dynamic queues accordingly. The decision on the processing order for the resulting queues requires a state management for allocating the appropriate number of resources during runtime. For this, a configurable performance index is used. The proposed dynamic queuing approach is prototypically implemented and evaluated based on a realistic data set.