When creating index SQL Server is checking column's metadata. Maximum index length for SQL Server 2012 is 900 bytes and for SQL Server 2016(1700 bytes).
For NVARCHAR(2000)
maximum size in bytes is 4000 and it exceeds index's maximum limit.
Create Table Test(Id Int primary key,ProdName Nvarchar(2000));
INSERT INTO Test VALUES (1, REPLICATE('0123456789',45));
Create index ix_Test ON Test(ProdName);
INSERT INTO Test VALUES (2, REPLICATE('0123456789',46));
-- Operation failed. The index entry of length 920 bytes for the index
--'ix_Test' exceeds the maximum length of 900 bytes.
db<>fiddle demo
Warning! The maximum key length is 900 bytes. The index 'ix_Test' has maximum length of 4000 bytes. For some combination of large values, the insert/update operation will fail.
It means that inside your column you have string values that are shorter than 450 characters(900 bytes).
SELECT MAX(DATALENGTH(ProdName))
FROM Test;
-- should be lower than 900
As for second question index will be used as long as condition is SARGable:
SELECT *
FROM Test
WHERE ProductName = 'ABC' -- index usage;
SELECT *
FROM Test
WHERE ProductName = 'AB%'; -- index usage
SELECT *
FROM Test
WHERE ProductName LIKE '%B%'; -- no index seek, index/table scan instead