Mitchel, can't you use the default date picker and set the 'date format' on 'time'? Alternatively you could use this widget to pick a time instead of typing it.
You can use a string attribute with a input mask like 00:00
How do I put all of your suggestions into code? Input mask on a normal Mendix string input field would create situations like:
You can use a jQuery widget like this. The are enough of them, see Calendar widget how to use jQuery in a Mendix widget. You have link it to your attribute. In the onChange event set the attribute and when the widget receives an update (look at subscribe) set the date value.
It might be a little more logic to test, but since making the customer use a DT picker is out of the question, you could try a simple text box.
On submit of the text box you would need to so some string parsing/analysis.
Another thought is potentially two text boxes, one for hours and one for minutes.
Again, if you can use the Mendix time picker, use that instead. But if not, you can consider these options.