I'm glad I came up with pretty much the same thing as you did on calculating the flee positions and vectors and such. I removed the equivalent of lines 14-15 in your CharacterFleeFrom.gd and calculated Steering.flee_from(*args) using Steering.arrive_to so the fleeing enemies had a smooth arrival to their destination rather than stopping suddenly.
I totally skipped the interpolation bit because I forgot about it! I'd like to imagine I'd have done something similar with the weighting but there's no way to know now lol.
Thanks! This was a fun challenge :)