Update on this: I've spoken to BT, who said similar things to the police ("if the problem persists, we can trace the call, because this is illegal"). Surely if it's illegal then they could do something about it right away? With a well designed database, it should only take a couple of seconds to run the relevant queries to get the caller's name and address. I can understand why the police have more serious issues to deal with, but isn't this the type of behaviour that ASBOs are for?
I did get some advice on the BT automated "nuisance call" hotline (0800 661 441, for anyone else who needs it). They said things like "Don't respond, don't be tempted to get into a conversation, don't get angry", which makes sense. They also said "And certainly don't blow a whistle down the phone line", which made me think "Hmm, that's a good idea - I wonder why not?" Anyone know of any reason why this is a bad thing?
Options wise, BT have a service called "choose to refuse", where you can either say "block the number of the most recent person who called me" (whether I can see it or not), which would take about 24 hours to kick in (efficient databases again...), or simply "block all calls where the caller has withheld their number". That's a free trial for a month, then 10 quid per quarter after that. Alternately, you can change your number free of charge, so that's what I've done, and the new number should take effect within an hour. If anyone wants it, ask me - my mobile number isn't changing, so you can text/email me as before.