There is a long running task (20m to 50m) which is invoked from a HTTP call to a Webserver. Now, since this task is compute intensive, the webserver cannot take up more than 4-5 tasks in parallel (on m3.medium).
How can this be scaled? 
Can the auto-scaling feature of EC2 be used in this scenario?
Are there any other frameworks available which can help in scaling up and down, preferably on AWS EC2?
Autoscaling is tailor-made for situations like these. You could run an initial diagnostic to see what the CPU usage usually is when a single server is running it's maximum allowable tasks (let's say it's above X%).
You can then set up an autoscaling rule to spin up more instances once this threshold is crossed. Your rule could ensure a new instance is created every time one instance crosses X%. Further, you can also add a rule to scale down (setting the minimum instances to 1) based on a similar usage threshold.
Long running task scalablity EC2