WCFs with standard msmq bindings (netMsmqBinding and msmqIntegrationBinding) do not support retries. Therefore, in response to your questions:
who creates the repeat queue? - You doing.
who moves the message from the replay queue to the application queue after a timeout? - You doing.
How is the delay tracked? - You have to do it.
NServiceBus is open source and can use MSMQ for transport. This product provides a re-launch function out of the box, but does not use WCF.
UPDATE
Above is valid for MSMQ 3 and below.
source share