Lag affects the entire game and is probably something that nilly is working on a lot, it shouldn't stop us from making new items that may/may not be useless because of it. I'm certain that it can be done, it's just that it might take more work than we'd think.
private void Activate(RealmTime time, Item item, Position target)
That line of code right there is the first line of code for abilities. The method uses Position "target", which is your cursor location, but this prism would need your character position too. I assume your current character position is tied to the 'player' class, so getting that won't be an issue either. What's going to be more complicated is having the server remember your old position. I don't think there's any code right now that does that, so it would have to be made from scratch.
I can see two ways of going about that:
Add a new variable to the player class that updates every tick and saves your character's position from x seconds ago. If this has to be done for every player it will likely increase server load by a lot, so maybe it's better to code it in such a way that the new variable is only used when a specific item is equipped. Still, the server might not be able to handle that.
What I said in my previous post, make a new conditioneffect. What I don't know is: 1) does a conditioneffect have access to the 'player' class for your character position? 2) can you make a conditioneffect do something when the timer hits 0? 3) if yes, can it specifically use the Activate() method? If those 3 things are already possible, then this shouldn't be too complicated. If not, then making it work will be quite a bit harder.
Then there's also the option of making it really fancy by letting us tp back on demand, but that's not important right now.