Hi again Nate,
Yes, sorry this can get a bit confusing due to legacy recommendations on the REST API.
1) For this first question, I used to have a Postman REST API collection that was available to just test out the Azure Resource Management ARM REST API directly for Microsoft.Media. All of the language specific client SDK libraries are generated from that REST API, and they use the AutoRest project on Github to generate each language API. Inside that library generation from AutoRest there are a number of helpers that handle retries and error polices for all ARM SDKs. Without those, you have to really study the ARM API and understand how to retry things. We had several customers try to "roll their own" SDKs outside of the supported client SDKs, but it ended up in 'slight tragedy' as they did not handle the retry policies on their own properly. You can discover more about general REST and retry guidelines for ARM here if you are really willing to go with the 'roll your own SDK approach' - https://learn.microsoft.com/en-us/azure/architecture/best-practices/retry-service-specific#general-rest-and-retry-guidelines
Otherwise, I highly recommend just using one of the several available client SDKs that are already generated for your usage in Java, .NET, Node/Javascript, Python, Go - see here.
https://learn.microsoft.com/en-us/azure/media-services/latest/all-sdks
And see the samples for each client SDK here - https://learn.microsoft.com/en-us/azure/media-services/latest/samples-overview?tabs=node
2) For your second question. That's more of an architecture and Security debate. While you can always use the Javascript library SDK for AMS in the browser using browser credential instead of a DefaultAzureCredential - you just need to be careful about leaking secrets or authentication information about your backend AMS account at the browser client side.
Prior to having the newer Javascript SDKs for Azure, we did not have any way to login at the browser side. You can look into that method if that is important for you. Otherwise, a good pattern is always to move the credentials for Azure resources and the calls into their APIs to a mid tier (Node.js or Functions App) where you can secure your credentials and not require that the person accessing your application have direct IAM access to the backend Azure Resources. In this mode, you would call the AMS APIs from the mid tier and pass the SAS URL to upload the video to the browser. The browser can then write directly to the SAS write URL for Azure Storage for any uploading. There should be some samples out there for how to upload a file to a SAS URL for Azure Storage. We can try to provide a sample for this as well - It would be nice to have a very basic web upload sample.