Build args shouldn't ignore `--clean` and `--full`

Also, if no build arguments are provided, default to `--full`
What's the purpose of this `_async` future? Why is this not simply in a `Future.sync` call?