Ok, let me start this with I am no python expert, so there are probably much more efficient ways to accomplish this, but... the first thought that comes to me would be maybe something along the lines of the following (pseudo code below)
while success != "True"True:
funcCopyData()
def funcCopyData():
try
...
...
global var success = "True"True
except
pause 10 sec
I don't know if that would work correctly or not as I don't know if the except would escape the while loop... but hopefully that at least gives you a thought.
Or you might look at the TestSchemaLock function and try something along the lines of
import arcpy, time
lockTest = arcpy.TestSchemaLock(featureClass)
while lockTest != "True"True:
time.sleep(10)
lockTest = arcpy.TestSchemaLock(featureClass)
funcCopyData()
def funcCopyData():
...
...
I've never used the TestSchemaLock though, so I make no guarantees, but it sounds like it might meet what you are needing.
Hope it helps, edits/corrections welcome.