The rate limits and maximum allowed lengths are all shielding mechanism against overloading a PI Web API instance.
The default values are already put into use. But this may be changed accordance to your needs. In a single batch request, you seem to hit MaxRequestContentLength limit which is 4194304 (4MB) by default.
Please test and control your parameters:
(RateLimitMaxRequests & RateLimitDuration), MaxReturnedItemsPerCall, MaxRequestContentLength
Details on each parameters are shown in LiveLibrary page here.
The rate limit per client IP address is calculated with the formula:
Rate limit per second per IP = RateLimitMaxRequests / RateLimitDuration
>Is it still not possible to create/update a Point with its attributes in a single call?
I checked it with PI Web API 2017 and still createpoint method allows
Name, Descriptor, PointClass, PointType, DigitalSetName, EngineeringUnits, Step, Future attributes.
As Barry mentioned in How to use the CreatePoint API call, first create points and 2nd update tag attributes by UpdateAttributeValue requires.
Create point method returns webid in response header's location. So there is a possibility that you can use it.