I would pass environ and query_extend as a keyword parameter like here https://github.com/walkermatt/mapproxy/blob/b9faa04b698b459f7b8bcb29b681eb2d1be2c062/mapproxy/service/wms.py#L297
This allows callbacks to ignore these parameters.

``**kw`` is not needed here. Only the callbacks itself should use ``**kw`` for compatibility with new versions of MapProxy where new arguments might be added.

e.g. 

            image = environ['mapproxy.decorate_img'](
                image, service, layers, environ=environ, query_extent=query_extent)