Did this require production mode turned off in order for the reports to succeed?
yes, its repository level changes and you may need to turn off prod mode before report refresh. In10.4 hf2 we have utility to turn off/on prod mode from command line(available in resource kit ) and that can be used here.
Do we need to use admin privilege's to execute REST API calls for Charts refresh and is disabling production mode is mandatory?
You need to have the necessary privileges in place to execute the REST API. For production mode, you can still keep the production mode, but you can disable the Trigger(s) on C_REPOS_RPT_DETAILS table for insert/update as a workaround.
I think the Report Job update Api to be used cautiously. It may not be good fit for Realtime chart updates.
It will add unnecessary load on the MDM tables.
Its best suited for End of day Reporting, can be run subsequent to your Load and Match/Merge jobs.
Another untested approach is to run the Add or Update Report Data Api to overwrite the collected data thru External calls. In the WriteCO.AfterEverything phase you can increment the respective Report record counter by 1