I wanted to give an update to this since I have been going back to this problem and believe I have finally found a working solution.
My experimenting has involved a few different firewalls and setups, and all the time I have been able to get Open NAT on MW2 (2009 version) only when the game has been "seeing" UPnP. Regardless if there has been a second firewall upstream that only had "traditional" port forwarding set up.
I'm writing "seeing" UPnP as I recently did some packet capture and started noticing some similarities between the scenarios with and without UPnP active. When not having UPnP I have manually set up port forwards for 28960-63, which are the ports showing up in the UPnP status page when this game is running.
What I found was that regardless if the game reports Open or Strict NAT, I always have the following "pattern" showing up in the pcap data:
e61ff4f5-1a6b-42dc-83ca-5e20cf7109ae-image.png
The only difference when UPnP is active, is that before this communication starts, I also see the following nat-pmp request and response sequence.
15bbeb55-5dac-409a-bf01-8988f2e68b0e-image.png
So I started thinking that the communication actually seems to be working on port 28960 and the game's reporting of Strict NAT might not be accurate? So I got some help from my friends to do some further testing and sure enough, I am able to host a game as well as connect to any other party hosting a game without issues!
So, I'm guessing that this particular game is actually reporting NAT status solely based on getting a response on it's nat-pmp request, and not based on actually doing a communication test... which in my case is giving me incorrect information and has had me chasing a nonexistent problem for quite a while... 😲
So all I have now are ports 3074-79 and 28960-63 opened towards my game PC... And for port 3074 I have to make sure to use static port.