@Amy Z Having separate resources for staging and production is indeed the way to go and having separate function app names shouldn't be a problem since the deployment could configure APIM as well with the different URLs.
In fact, you could just have the Logic Apps directly configured to APIM to keep things simple since the function app isn't doing much. When deploying the ARM Templates, you can get the trigger URL dynamically and update the backend sub-resource of APIM. This SO post highlights how you can fetch the trigger URL for a Logic App.