I found a problem which (I think) is rather fuel related.
opcache_reset();
return \Response::redirect('admin/opcache/'); OR header('Location: admin/opcache/'); exit;
When I run this code, opcache stucks in restart_pending state. If I remove the redirection, it works. If I run the above code in a simple php file, rewritting the redirect to header, it works.
I can't reproduce that here, it redirects just fine?
Note that as with any opcache, you can run into severe problems when you alter files that are already in the cache, APC has the same issue. In general, only enable an opcode cache in production.
I checked the C++ source, the pending flag is reset even before the cache is actually restarted. The restart is triggered from accel_activate(), which is called when is script is being compiled.
Does your config actually compile anything? If not, it will remain in a pending state, because accel_activate() will never be called.
With the default config, even if enabled, it doesn't compile anything.