WorkQueue - how to model queue to call external API within its limits

In essence each work queue item is independent and is to be processed independently (queue tasks always react on each queue entry). What you ask for is some kind of aggregation of events, which the queue does not support in any built in way.

Without additional development I would suggest to use a scheduler scenario, so even without queues you would just process all unprocessed records every 6 minutes.

Another option would be to include the aggregation to the queues and that would go to queue development ideas which we have some and we want to work on queues quite a lot in the next builds (e.g. see Work Queues - Support for Retry or Work Queue Groups).

One way would be to support batch queue auto processing so instead of 1 entry the workflow would get multiple queue entries to process. It would also need some scheduling mechanism (6x per minute), now it gets executed as soon as the queue entry appears. Of course the question is what would happen if one of the items would fail processing, then the whole batch has to fail and all the queue items have to move to the error queue for example.