You'd need 2 transformation matrices per situation. Even if you do accuracy of 1 degree you get 360 * 360 * 360 = 46,656,000 combinations. Add to that matrix size of 16 * 4 * 2 = 128 and it's suddenly 6 gigabytes of data and you still haven't taken into account translation or scaling.
Basically I want to make sure my RenderLoop runs properly
Define properly. Most would say you need to use fixed time step to have proper game loop. There's a link in your code, and if that isn't sufficient I can also suggest this article.
running at the Time I've intended them to run independent of the FPS
You just measure time since last frame and move everything by that much. For example, your character moves 2 m/s, so you multiply that by time elapsed in seconds and you get distance character moved since last frame. This will happen in your Update() function.
However, if you are using fixed time step then elapsed time in Update() function will be constant, ex. 0.03(3) seconds if you want 30 UPS (updates per second). Then your Render() function interpolates between last position and current position (it's explained in the article I linked earlier).
However there's one more thing I'd like to mention:
public void Frame()
_StopWatch.Stop(); // time stops
FrameTime = (double)_StopWatch.ElapsedTicks / (double)Stopwatch.Frequency;
LastUpdated = Stopwatch.GetTimestamp();
_StopWatch.Restart(); // time restarts
// but did it count time that passed between Stop and Restart calls?