For me, that's just a developer. A junior is someone who needs handholding, a regular developer can do their own work, while a senior has impact that goes beyond their own work (can coach juniors, make bigger decisions which affect team etc.).
2) I think your description of senior mostly applies to some sort of lead developer or director of technology or some other fancy title. I think a senior developer can help juniors and make team decisions, but those who specialize in what you mention have some kind of lead or management title. To me, the key trait of a senior developer is that they can work out most problems on their own.