You cannot override the header image width as far as I can tell (I've been working on this myself just now) since it's a hard-wired maximum of 1260 in the image upload/selection for the header - Wordpress will insist that you crop it no matter what you do with the CSS (I couldn't find where to change this in functions.php either, I don't think you can without messing with WP core files).
The best answer I have is to set this:
#site-header {
position: relative;
z-index: 3;
background: url(https://example.com/path/to/img.jpg);
}
in your style.css, where you simply set the url to your desired header image obviously. You will have to also get rid of your existing image somehow, I simply set a transparent image of the same height as the header image.
Unfortunately this image wont resize with the rest of your site but it does mean you get a banner that actually matches for example in my case a 1920 width based site.
Hope that helps. I would have added this as a comment but I don't have the rep yet.
*edit - Actually I just read your OP properly and noticed you ARE messing with WP php, so this post probably not much help sorry :-/ however I am interested in how you reset the max width px since that would suit what I've been trying to do perfectly... I could ditch my current solution.