Wolfram Language (Mathematica), 5353 51 bytes
Byte count assumes CP-1252 encoding.
#/.±{a___,Shortest@b___,c___}/;PalindromeQ[a<>c]:>={b}& Defines a unary operator ± (or a function PlusMinus). Input and output are lists of characters. The test suite does the conversion from and to actual strings for convenience.