estas usando un HOLDLOCK esto puede causar que se quede bloqueada la tabla y mas si se ejecuta un delete despues de eso, ya revisaste el plan de ejecucion de tu proceso? ya intentaste hacer un insert/update manual no usando merge???
te recomiendo una leida a este post:
http://sqlserverplanet.com/sql-2008/...erge-statement