So in my opinion the best approach would be to send only traffic with 44 origin and 44 destination not in other routes via ampr-gw, to preserve your original 44 IP. All the rest should be NAT-ed to your public gateway IP, not your gateway's 44 net, in order to circumvent the whole 44net completely. This will give you better speed, better response times and will ease the work of the ampr gateway.
I agree that there are situations where you better NAT the traffic than send it via amprgw. E.g. you are running Windows or Linux systems on 44-net addresses and you want to fetch operating system- or virus signature updates from an internet source, and you do not want to needlessly load amprgw with that traffic. (over here that does not really matter, we have our own gw and it can easily handle that load for the subnet of users that are in 44.137.0.0/16)
Unfortunately, there are also situations where that NAT is really undesirable. The best example is Echolink. It simply will not work correctly when your system partly communicates directly (to other 44net systems) and partly uses NAT to communicate to internet systems.
Of course it is also possible to use advanced techniques like the packet- and connection marking that you already mentioned to run a mix between direct and NAT. For a while I had a connection mark in the gateway that was set for certain host/port combinations and forced the use of srcnat in the POSTROUTING table. This was an attempt to work around issues like Echolink and also reachability of a system that is also running partly with NAT. I have dropped it some time ago as it was not easy to maintain it.
Rob