I personally don't think packaged executables are out of vogue - or that it should be a web application. Making it a web application might just complicate things.
If you aren't willing to do the work server side, then a web application would be very limited. The only things I can think that would work:
Pure Javascript. Yikes. For long running computations this just won't work. If the person closes their browser it's over. In fact most browsers will prompt the user about long running Javascript processes and suggest they kill them.
Maybe Flash or Silverlight? Client side code, but again the same problem ... you'd have to hope the user wouldn't just closer the browser and thus kill their long running process.
You can definitely fire up some cheap servers with Amazon EC2 and do the work for them - and that would be really cool. They could close the browser after issuing the request and then re-open it later and check on the status.
But if it has to be client side - go with C++/Qt.