This looks very nice. It'll need lots of docs with examples to understand how to put together the nicely flexible building blocks you provide.
That will make Refile trigger the specified processing at the moment the URL is requested. You should then put a CDN or a reverse proxy in front to kind of cache these processed files, so that they're not processed each time.
About the documentation, I wrote documentation for each of the plugins, and I linked them all on http://shrinerb.com. The plugin names should hopefully indicate what feature they accomplish, and since they're all individual, it's up to the user to choose what features they want (i.e. combination of plugins).
"upfront" but async background does seem to be the best way to approach it to me, at least if you had to pick one -- that's what Shrine does?