1. Can the server correctly keep track of when a player moves from casting?

If not, can it be handled by the client? Spell starts. 65% of the way through, the player moves. '65% still cast' can be given to the server, as can the effects, given that 65% or whatever it may be, if there was a difference.

2. Are effects calculated before casting begins or after casting finishes?

If the latter, then why not just make it so that effect is increased based on the percentage of time you were still / unmoving? So, in the above example a 65% still cast would do something like (100-(35/2))% effect. Half effect price might be a bit steep for moving, but it's just an example.

3. Can this theoretically be done starting from moving, going into unmoving (can start casts without stopping / being forced into a stop)?