Scott Hanselman has blogged recently about our experience with nasty tricks Visual Studio debugger can play on you. Turns out, it's possible to run and debug normally without resorting to a secondary thread spin-off. But there is a price to pay: remote debugging for web services must be disabled. Add this to your app.config:
<configuration>
<system.diagnostics>
<switches>
<add name="Remote.Disable" value="1" />
</switches>
</system.diagnostics>
</configuration>
Sweet.