python command returns different values in a script and interactively

So I got it to work. Turns out I messed up the SetAsync calls. Switch it to True before the Continue, then False and it works.

The final code is:
    target = debugger.GetSelectedTarget()
    process = target.GetProcess()
    target.BreakpointCreateByName("main")
    debugger.SetAsync(True)
    process.Continue()
    debugger.SetAsync(False)

Thanks for your help, Jim and Greg!