Is it possible for MOH to be played only for off-net calls instead of both off-net and on-net?
Well you would still need to reference a MRGL in your device pool for conferencing, Xcode, MTP ect if you want to utilize those resources. you may just need to create a MRGL that excludes your MOH servers and add those to the gateway MRGLs only.
restrict the access to internal users not to be able to reach the MOH server, only leave the MOH server available to the GWs.
if this helps, please rate