Since you have the index redirects after the non-www redirects you have already introduced an unwanted redirection chain when non-www index URLs are requested.
The index.php and index.html rules should be combined into one and listed before the non-www redirect.
You should not be appending a trailing slash for pages. Trailing slash denotes a folder or index page in a folder. See RFC 2616. Remove the slash for pages. Certainly add the slash for folder URLs.
Your index rule works only in the root. Make it work for all folder levels but do not use (.*) for the path detection. It causes multiple backoff and retry pattern matching attempts. Replace it with a more specific pattern.