implement queue fill timeouts
in some cases, it is possible that we cannot replenish a queue faster than it is being drained. since queue filling in loader and the dacstream fill task attempt to fill until the queue is full, this could result in the task sitting there for a really long time.
should add a timeout so if the queue isn't full within a few hundred ms, it just gives up and tries again later.