Process join should account for timeout-based joins where the results won't be ready
More explicit errors because the stack doesn't always exists in async runs (another something we may reconsider)
Support source functions