When checking microprofiler it seems that RenderJob (RenderStepped,Prerender, BindToRenderStep), runs after Heartbeat and Stepped. When RenderJob should be the first to run.
In Studio
In Game
This seems to be the case when testing with other users as well.
Another example
local RunService = game:GetService("RunService")
local Start = os.clock()
RunService.Heartbeat:Connect(function()
print(os.clock()-Start)
end)
RunService.RenderStepped:Connect(function()
Start = os.clock()
end)
In studio:
In game: