Hello anatabai!
About 1)
Making sessions would involve storing the file path of the executable that owns the windows, and i don't think there's a way to access that information. (it's possible to know the name of the executable, but not its full path, afaik).
Saving a window layout to be applied when those same windows are open would be feasable and would make sense, though.
About 2)
This really is a program completely different from gridmove. Someone recently made a similar request, and i answered that there's a program that does exactly that, but unfortunatelly i still can't remember its name
Now, something important.
Although i'd like to implement the sessions into gridmove, that's not going to happen in the near future, as i am now finishing my university course and i don't have time for anything