OK, figured it out.
I was set the following cURL option CURLOPT_POST, but did not include the accompanying option CURLOPT_POSTFIELDS.
Now that seems like an obvious problem, but what really threw me off was that in my local environment it worked perfectly fine. I would think this problem would break both.
So once I included oauth_callback in CURLOPT_POSTFIELDS, it worked. Hopes this helps others in future.