Can you attach the error.log file for the use case when the file size is larger than 1 mb ?
[EDIT] Let me suggest you an alternate approach for your usecase,
Rather than sending the file binary data to the servlet, you can first upload the file to a temp path and then create an attribute in the request containing this file path which is available to the servlet.
Now, in the servlet, you can use this path to access the binary contents.
This approach would always work because you are never dependent on file size anywhere, the file gets uploaded first in a temporary path(using sling post servlet) and then you use this path to access the file contents.