Async threads in Lasso allow code to run asynchronously and in parallel to the currently processing page. They are useful for offloading tasks to improve response times and for recurring events like scheduled jobs. Async threads do not have access to web request data and their output is not available, so alternative methods like logging must be used. Context can be passed into async threads using variables. Debugging async threads requires techniques like testing code outside the async context, trapping for errors, and sending debug messages to external sources.