This is a random guess as I'm not an expert...
To answer the question in the title, "What's the point of the nonce in CTR mode?", I would say that it's to make the protocol stateless. Meaning that both side doesn't need to store any information in order to encrypt/decrypt multiple runs, except the key.
To understand the above statement, let's look at block cipher and some protocol like SSL.
A block cipher is like a function with two arguments, key and input. If you provide the same two arguments (key + input) two times it will always produce the same output.
In SSL, you generate a symmetric key at the beginning that you will use to encrypt/decrypt many different messages. So, one of your argument in the block cipher is already fixed for the whole conversion. This means that you must never repeat the second one or you would produce the same output from the block cipher twice.
Why is it bad to produce the same output from the block cipher twice?
It is bad because it makes you vulnerable to replay attack. If it is ok to produce the same output from the block cipher twice, it means that it is ok for an attacker to resend one of your old message during the conversation and the server will gladly accept it.
So, is this why we need a nonce?
Yes and no.
If you have fixed nonce, you are fine as long as you never reuse the same key with the same counter during the whole conversation which might include many messages. So, both the client and the server need to know the last value of the counter hence they would need to maintain a state.
By using a nonce, we make the assumption that we will never have the same input which is formed by the combination of the nonce and the counter. So, we don't need to maintain any state.