Good job OP. I personally found Eric Lippert's 6-part series (and playable Silverlight demo) on the subject fascinating. I didn't notice it referenced in your design document, so here it is.
https://blogs.msdn.microsoft.com/ericlippert/tag/shadowcasti...