(1) C# And Powershell use the dot.net framework. (C# comes as part of the dot.net framework)
(2) (a) Asp uses visual basic scripting language as it bases, and is not compiled. (b) Aspx uses the dot.net framework, and is precompiled or compiled on first access.
(3) I haven't double checked this in awhile. But I believe it defaults the the highest version of the dot.net run time for Aspx based websites unless you manually change it. For most users using the latest version of the Dot.Net run time for Aspx website will be ok, no need to change it.
(4) I am not as familiar with powershell to answer this one maybe someone else could.