This still has the issue of asynchrony that I mentioned before (`status` not guaranteed to be set before returning).