The one issue I see that you're going to face with either solution that you're looking at is related to Tasks. With the Community+ License, Tasks is READ ONLY for Community Users. With the Service Cloud Portal User License, Tasks isn't available to them at all. So in either case, you'll need to create a custom Object that mirrors Tasks to your Portal/Community Users so they can update/edit their progress as Tasks are resolved.
Both licenses are based around the HVCP licenses which are similar. I can't speak to the cost and how that would impact your org would greatly depend on the number of 3rd party agencies and their usage patterns. There's also a High Volume Overage Customer Portal License Available as well which might be more suitable depending on those usage patterns. If I'm not mistaken, you'll likely have the option to create a community in your Service Cloud using the HVCP license, most definitely if you have it sitting on top of an EE org. That's the new model around how SF is doing everything as "traditional portals" are essentially being phased out and disappearing.
My guidance would be to look at the cost of the three licenses based on expected usage and to plan on needing to create a custom object to mirror Tasks exposed to Community Users that you can sync back and forth using triggers regardless of the license you choose to use.
If you want to avoid the custom object and triggers, your solution would be limited to choosing the Community+ Licenses for your 3rd Party Agencies then using sharing to allow them access to the Cases assigned to them through the Task (still Read Only). However, they'd have the ability to create and update or take ownership of Cases assigned to them. That of course would require a different workflow than you currently have planned that I don't believe would allow for the use of Tasks since they wouldn't be available to your Community+ Users on a create basis.
I'll add that I can tell you from experience that its not that difficult to implement a mirrored object that's synced using triggers.