Quando l utente inserisce il messaggio suo al posto di accodare il suo messaggio( senza sapere se ce ne sono di nuovi quindi) ricrei tutta la lista dei messaggi.
Nella pagina php potresti secondo me:
- inseire il suo messaggio a db
- sapere quindi il record inserito
- estrarre tot messaggi calcolando ad esempio: where id <= ultimo id inserito con order desc
- al massimo ti ordini l'array sempre da php

- rigeneri a sto punto $('#chat').hml(msg)

ps ho messo .html() per esempio ...