feat(ux): show messaging when response takes longer than expected

Fixes #912.

We don't currently have any use for a dedicated page, so I ignored that part.

@ckarlof r?
Errors in general will overwrite existing errors. That's what happens in this case, since working uses the standard error display logic.