So, New-MailboxExportRequest generates a MailboxExportRequest object if I remember my Exchange 2010 class right. Couldn't you store that in a variable, and then start a while loop that sleeps for 30 seconds until the job is done? Something like:
$MailExport = New-MailboxExportRequest -FilePath <path> -Mailbox SomeGuysMailboxID
While(!(Get-MailboxExportRequest -Id $MailExport).Status -eq "Complete"){Start-Sleep -S 30}
Search-Mailbox ... -DeleteContent
Or if it doesn't return an object you can specify a name for it I'm pretty sure, and then get the status by job name. Either way you can just check the status and put in a sleep command to make the script wait until the job is done before moving on.