I'm really not sure about this. Let's say a package creates a task for its own later use by writing this at the top level:

```
global some_task = Task(do_private_things)
```

Much later, after the package is loaded, this task is started. Inside that task, `jl_current_module` will look like we are still loading that module. This is completely wrong --- the current module is not supposed to be "captured" in this way; it is a dynamic property.

I think the solution is not to have a task-local current module unless a task changes the current module. `t->current_module` can start out NULL, and as long as it's NULL we leave `jl_current_module` alone. `jl_current_module` is a property of a stack --- the module being loaded in the most recent frame of the current stack.