As per my understanding, the time taken to get a smart contract deployed has no difference compared to the time taken for a transaction to be mined, since deploying a contract itself is a transaction. Hence the gas price you define matter when getting a priority in the pending transaction queue.
Probably the reason behind the latency should be the low gas price when compared to the current network status, in your case as well.
You may refer this question.
Can you hightlight common practices for deploying a smart contract and
common issues?
What you are referring here is the moment of sending it to the blockchain, it's all about transactions. But if you consider the development as well, thses aspects of unit testing, testing,securing are important.