As I understand after you applied and paid for the visa and they tell you it is ready to be collected at the consulate of your choice, it doesn’t actually take that long.
All they have to do is sticking the visa into your passport. The actually approval process has already been done at that point. So ideally it should be possible with a single visit to the Embassy and not giving away your passport at all.
However I have not been through that process myself yet, maybe a phone call to the Embassy can clarify my assumption.
Edit: In the meantime, I did apply for a Iranian visa but not in London, I had to sent my passport to the Iranian consulate in Hamburg and it took a week to get it back.
Credit:stackoverflow.com‘