Potresti farti una tabella sul db con i seguenti campi (ed altri a seconda delle tue esigenze):

id_utente | id_costruzione (per sapere cosa sta costruendo) | fine_costruzione (timestamp)

Quando un utente prova ad avviare una costruzione leggi in questa tabella se ha già una costruzione in corso, se ce l'ha gli dici di attendere o gli disabiliti i pulsanti per avviare le costruzioni, o vedi tu come vuoi impedirgli di costruire altre cose.
Se non ha niente in costruzione, aggiungi una riga a questa tabella.
Periodicamente elimini le righe con timestamp scaduti.