Unpredictable performance of queries against snapshot
PAGEIOLATCH_SH means waits for reading database pages.  When you create a database snapshot, none of the database pages are in the cache, and you will have to fetch them from disk.  


  disk IO at these times is low (2-5mb/sec), 


The query plans may be driving small, random IO, and 2-5mb/sec is all your disk can supply.


  Would it help for the snapshot to be on a different disk from the master?


A Database Snapshot is a NTFS copy-on-write snapshot of the target database.  There is only one copy of the unchanged pages shared between the database and its snapshot.  If you use a backup/restore instead of a Database Snapshot, then you could put it on a different disk.