Can a view and a content type share the same alias pattern?
Yes, you can do this. The key is in the Action to take if filter value does not validate option of your Contextual filter. 

Set that option to Display contents of "No results found". 

Then under No results behavior add Rendered entity - Content enter schools/{{ arguments.name }} or which ever correct token is in your case. 

This will make your views work with regular terms, but if the term doesn't validate it will go to the page with the argument. In your case if the argument is school-name then it will lead to the node page with that path. 

What you should additionally consider is what an argument is entered that isn't neither, a term nor the appropriate part of a node path. You'll just get a blank page with View page title. 

Maybe you can solve that by adding another No results behavior for that case, maybe a block with a message that the term doesn't exist and a link back to the Views page, then hide the Block on your node pages that share the starting path string.