I'm concerned about this scope less lookup.  Does it follow ruby's constant lookup rules, or does it always only look at top-level.

What prerequisite task is discovered with:

```ruby
m = task 'm'
a_m = nil

namespace 'a' do
  a_m = task 'm'

  namespace 'b' do
    task x: 'm'
  end
end
```

Whichever behavior (`m` or `a_m`) this change causes should be tested and documented.