Major changes to support the ability to restart the queue after an exception (eg limit) causes a shutdown. Preserves position accuracy across the time when get_frame is not being called.