MSMQ Suitability for long running task scenario



I have a web app for which there are a number of processes that could
potentially be long running. For arguments sake let's say this could
be 1hour+. My two primary concerns are firstly that I want the
processes to run asynchronously and secondly I don't want the
processes to tie up IIS.

I've come to the conclusion I need some kind of broker object that
starts the task asynchronously with a mechanism for returning progress
information when requested. This looks alot like MSMQ however I'm a
little reluctant to start using this as I'm going to need something
sitting between MSMQ and the aspx code and probably something after
MSMQ between MSMQ and the task(s) itself. This makes me think perhaps
I should just create my own broker object which spawns the tasks

This then comes back to my other concern about tying up IIS. If my
broker object lived within the web app and spawned a task on a
different thread, would this thread also use up an IIS thread or IIS
resources? As I understand it, with MSMQ the task would start via the
MSMQ service and presumably be outside of IIS completely.

If I created my own broker I could split it from broker->task into
broker->MSMQ->broker->task at a later stage if required, although
admittedly I'd duplicate effort on persisting progress messages.

Any pointers much appreciated!

My Computer