The biggest issue is of course that you would need to know the message to be able to decrypt it.
Is there any immediate weakness (assuming the messages I'm sending aren't pre-canned)?
Pre-canned is too loose a term. If an adversary can guess the plaintext in any way then the key would become known. The security of AES would be downgraded if the entropy in the message is lower than the key size.
Note that it is assumed that the adversary knows the hash function used (the Kerckhoff principle), so no security can be gained from that.
Is using a nonce enough to overcome any weakness when using AES?
AES doesn't use a nonce. Cryptographic schemes and block cipher modes of operations such as GCM may use a nonce. However, a nonce doesn't remove any other vulnerabilities of the scheme or mode of operation. Having a nonce may be a pre-condition for a specific scheme or mode of operation, but that's about it.
If not using a nonce, is it still viable?
No, it is not a good idea.
Possibly you would need to take a look at password based key derivation functions instead (PBKDF functions, also known as password hashes). These provide healthy things such as a salt and work factor / iteration count. The salt is probably the kind of nonce-usage that you are looking for, and the work factor makes it harder to guess the message.