Works fine in trial. It's broken when using outside the context of trial.
It seems like a bad thing to officially support anyways. If we want a
general-purpose 'wait' API, it should really go somewhere else. Because of
that, I don't think this bug is urgent, but I'll let release manager
decide.
I think the brokenness is because of the craziness trial goes through in
order that it can test itself in the same process as it's running, instead
of a separate process as might be more sensible. (It uses a custom adapter
registry to accomplish this.)
Perhaps it'd be okay for _setUpAdapters to be called from trial's __init__?
I don't really know..

If I recall correctly, this feature didn't exist in the previous release, so I
don't think this bug qualifies as urgent either.
It would be nice if it gave a more useful error message when used outside of the
normal trial context, and/or was documented to do so, but let's not make the
release depend on it!

what feature didn't exist in the previous release?
I just became more interested in this bug because it's causing me to not be
able to use nevow-lore, which uses wait on nevow's renderString() deferred.
The existing twistedmatrix website, as well as hypatia's new 2.0 project
website stuff, uses nevowlore, and I can't use it because of this. Making
it not use wait() will be problematic, as lore doesn't support Deferreds on
this level, afaik. The only options I have are to write a lore-less nevow
static file driver, or have trial's wait fixed.