The min-heap provides no ordering when the key is the same on 2 nodes. Disambiguate identical times by tracking the order items were added into the queue.
ForceExceptionCheck messes up the downcount and slice length if the callback is scheduled into the past (g_slice_length becomes negative)