You could probably have a worker system that eventually produces a Zopfli compressed file.
User uploads a provided PNG, you perform the quickest compression compression but then queue up a Zopfli compression. Up front you're only returning the less compressed file but after time you begin serving up the lesser bandwidth file.
If the uploaded file or associated post is deleted then you can wipe it from the queue.