i have to throw this out there, but Aeryn, is it possible for you to just not make drinks for "Mary". as much as this may seem like avoidance, there's a big difference between slinking around avoiding someone and not engaging with a hostile customer (or person) for that matter.
you're the assistant manager, yes? simply have another barista make Mary's drinks from now on. through my eleven years in coffee service, i've had many customers like this, and you CANNOT win with them. they were regulars before you worked there, they liked the old barista better, people have been cowtowing to them for years, whatever the reasons this is a power trip they get to play daily; and win. they won't give up.
so my advice to you is to remove yourself from the situtation. find someone who makes drinks that Mary loves. and run with it.
i wish you best of luck and happy trails.