Just to save anyone else the 6+ hrs I’ve just spent on this…
BLF + Call pickup, in fact call pickup alone (without BLF or speed dial function) from the line keys or attendant console on Cisco SPA phones (firmware 7.6.1) would not work at all, unless the System Type was set to Broadsoft, and the extended function given both the sub=extn#@$PROXY and the ext=extn#@$PROXY (or you can say usr= instead of ext=, they are synonymous with each other).
Directed Call Pickup would not work (would not work with the # in the call pickup code), unless it was set like:
fnc=sd+cp+blf;sub=123@$PROXY;ext=123@$PROXY;nme=Name
and system type was set to Broadsoft (not Asterisk).
The Call Pickup Code was set to **# then, and it works finally!
Hope this helps in future.