How can I sort Views output by whether or not field content matches a string? I feel like there must be a module for this, but I can't find one.

What I have is a field with 4 possible values. I want to sort items with a specific one of the values to the top, then everything else in order by creation date.

In SQL, the query would look something like this:

SELECT fields FROM table ORDER BY textfield = "text" DESC, datefield
Consider two different approaches here: 

Add a single view with multiple sort criteria:


Create two views:


The first view should include a filter criteria with operator "is one of" for the textfield value you want to use (ex. "text") and a sort criteria based on date.
The second view should include a filter criteria for "is none of" for the textfield value used in the first view (ex. text).
Within the second view, add a field "Global: View area" within the view header selecting the first view created. 


The second option requires additional configuration, but should give you more control over the sorting of the different groups. In addition, using multiple sort criteria for text fields occasionally causes duplicates to appear and the multi-view approach avoids this problem.

Update

Check out Views Argument Extras. This module provides a method to sort based on argument criteria (such as arbitrary fields) without using weights. Here's my configuration:


The above configuration will be too simplified for your 'sort by day, then text field, then time configuration', but it's a good start. To sort by day, then text field, then time you'll need to use the date module and limit the elements that it sorts by (checkboxes). 

If this is something you plan to apply globally, consider adding the Weight module and sort based on that instead of Views Argument Extras.