How can I custom sort a views display containing multiple content types to list the newest item from each content type sequentially? I have a Views block display where I've collected content items from 3 different content types, filtered by a shared Taxonomy term. My sort criteria currently is "Post date (desc)" and "Type (asc)". I have the Pager displayed and a limit of 6 items to a page.

The current results are:

Page 1
First Newest item from content type 1
Second Newest item from content type 1
Third Newest item from content type 1
Fourth Newest item from content type 1
First Newest item from content type 2
Second Newest item from content type 2  

Page 2
First Newest item from content type 3
Second Newest item from content type 3
Third Newest item from content type 3
Fourth Newest item from content type 3
Fifth Newest item from content type 3
Sixth Newest item from content type 3  

Page 3
Etc.

The desired results are:

Page 1
First Newest item from content type 1
First Newest item from content type 2
First Newest item from content type 3
Second Newest item from content type 1
Second Newest item from content type 2
Second Newest item from content type 3  

Page 2
Third Newest item from content type 1
Third Newest item from content type 2
Third Newest item from content type 3
Fourth Newest item from content type 1
Fourth Newest item from content type 2
Fourth Newest item from content type 3  

Page 3
Etc.

Is this something that requires a custom module with hook_views_query_alter? If so could someone help me out with how I should build the expression in my module?
You just need to set a correct order in your 'sort criteria', post date first, then content type.