поток это поток, файл это файл, ты не можешь передать еще не полученное таким макаром. хотяя... если хочешь знаю один извращенный метод чтобы подсунуть стрим курлу, хотя нафига не очень понятно, чего тебе со stream функциями не работается?
сделай контроллер который будет возвращать контент файлов и проверять acl или чего там у тебя, а сами файлы размести в недоступной папке выше корня сайта
потому что форма с загрузкой передается как multipart/form-data т.е. для каждого блока в отдельности может быть задана кодировка. если ну прям очень интересно, то см.https://tools.ietf.org/html/rfc2045 и далее.
как можно вычислить когда будут новые задачи? если никак, то считай исходя из ресурсов хоста: если пользователей мало т.е. ресурсов много - пусть стучатся чаще, много - реже.