Are you able to delete even one batch, without using any looping? Also, check if the OUTPUT INTO clause is causing any issues - perhaps the target table is blocking. You can run sp_who2 and see what is blocking what. Also, I prefer GO # rather than while loops for this sort of thing:
DELETE TOP (10) FROM YourTable;
That will delete 50x10 = 500 rows from your table.