Each deferred task has the potential to spin up a new (parallel) instance, though there is some dependence on the scheduler and your Min/Max Pending Latency settings (in Application Settings). If $$ is not an object, you could increase the Min Idle Instances to ensure the instances are around. There is some instance start-up overhead, though that mostly depends on your own code/framework.
You'd need to use larger front-end instances to get the memory footprint you need. F2's have 256MB, so you'd likely need the big F4 (512MB).
For the channel API, you only need to know the channel ID to send the message. It is just a string, so you can include it in your task context easily.
Sounds like your plan will work out fine.
j