Ignoring everything I mentioned before, the recommended way for your scenario would be to attach an event handler to the SendingMessage event of the Current RaygunClient instance.
Such an event handler will be called for all automatically and manually sent exceptions, and allows you to modify the given RaygunMessage object however you like which is then serialized and sent to Raygun. In this event handler you can set the e.Message.Details.Tags property to include the environment. The log lines might be best to go into e.Message.Details.UserCustomData.
Here is the documentation around this: https://raygun.com/docs/languages/net/xamarin-for-android#modify-cancel-message
The example in that documentation shows how to cancel sending the message, so ignore the contents of the event handler and use your own logic regarding setting tags and custom data.
Again, no need to subclass RaygunClient. I'll also point out that the Raygun provider for Xamarin does not have a concept for specifying a default set of tags like what's mentioned in the original question of this thread. So using this event handler is the only way to customize the tags of automatically sent exceptions.
Another thing to note is that this Raygun provider will automatically send a tag named "UnhandledException" with all automatically sent exceptions which is used by Raygun to distinguish between crashes vs caught exceptions. So when setting the Tags property, you may want to first check if there are existing tags and merge your tags into it, rather than overwriting it all.
Please let me know how that goes for you.