Fixed race condition: UI vs. purchased async call

A race condition was introduced in 1d7f03e3: async call to the API `purchased` endpoint was completing *after* UI was refreshed, resulting in buttons not being updated (e.g. from "BUY" to "PURCHASED").

Fixes #1044