Permissions for Cluster service account in SQL server
Yes, it failing is expected. It is documented here.

AlwaysOn Availability Groups and SQL Failover Cluster Instance and Privileges
When installing the Database Engine as a AlwaysOn Availability Groups or SQL Failover Cluster Instance (SQL FCI), LOCAL SYSTEM is provisioned in the Database Engine. The LOCAL SYSTEM login is granted the ALTER ANY AVAILABILITY GROUP permission (for AlwaysOn Availability Groups) and the VIEW SERVER STATE permission (for SQL FCI).

To answer now:

1.I've heard that creating NT AUTHORITY\SYSTEM within SQL server is not safe, If that is the case, Should I change my cluster service to a domain account?, Will this affect anything?

I'm assuming you're talking about the actual cluster service. If that's the case, then no do not change it. You could change it in WS2003 when domain accounts were used but since 2008 this is not possible. If you do this most likely your cluster will break.

2.I added NT AUTHORITY\SYSTEM to Sysadmin role - Is this really required or can I provide only the required permission explicitly to the login

Sysadmins is not required. Per the link/quote above, VIEW SERVER STATE is required.