An update on this - I ended up implementing support for asynchronous file open, based on the thread pool feature that was added in nginx 1.7.11.
I copied nginx's ngx_open_file_cache.c (from 1.9.0) and made it asynchronous, source code is here:
https://github.com/kaltura/nginx-vod-module/blob/master/ngx_async_open_file_cache.c
(you can diff it with ngx_open_file_cache.c to see the changes)
If there are any nginx core developers on this thread - I would really love to see this feature make its way to the nginx core, so that I won't have this code duplication with the builtin ngx_open_file_cache. The feature was very thoroughly tested for any race conditions etc., test script is here: https://github.com/kaltura/nginx-vod-module/blob/master/test/test_open_file_cache.py
Thanks,
Eran