Concurrent queue не даёт механизма отслеживать добавился ли элемент в очередь, приходится поллингом опрашивать, плюс реализовывать свою поддержку для cancellation и таймаута
В BlockingCollection это всё из коробки, плюс он вполне рассчитан на multiple producer/multiple consumers
Если ты посмотришь на этот интерфейс, кроме хранения Stream с файлом ты получаешь доступ к content type, content length, file name и ещё каким-то полям
Храня картинку в base64, ты таких данных не имеешь