This is a very good Question. It is too bad that there is not a universal answer. It is highly dependent on where you preach. For example, there are some contexts where preaching longer than 20 minutes may cause people to start fidgeting. There are other contexts where the people would feel cheated if you only preached for 20 minutes. While there is no universal answer to the question, there are some principles to keep in mind.