IDEA #1
For sensing whether if the hat is worn correctly or not, you could try to glue the module in the youtube video below on to various sides of the hat (You should also put it on the top as well), and find the range of coordinates many individuals get when wearing the hat properly, then make them wear it at different angles (Try to pick many angles close to each other for better readings), and measure the new coordinates, and the difference/change in spatial and angular coordinates (minimum coordinates, maximum, average, etc) between the accepted "normal" and the different angle/coordinates.
If the difference between coordinates breaks a certain threshold when comparing a random position from the normal position, then someone isn't wearing the hat correctly.
You could use different LED's to light up if you notice a change in spatial coordinates and tilting angle of the board.
I know for baseball caps, if you wear it backwards, the board will definitely notice a lower z axis displacement compared to when it's worn at the sides or the front (assuming you place sensor/gyroscope at the front of the hat)
Link: https://youtu.be/wTfSfhjhAU0?t=7m19s
IDEA #2
Try making a system of equations, and getting the hat's coordinates when worn properly. If they stay the same for 5 seconds, then those are the coordinates that you should compare with. If someone rotates the hat, then the answer will converge to something different, and if the difference between the two solutions passes a certain threshold, then the hat is at a different angle. You can use the same data gathering process mentioned in IDEA #1
Inspiration: https://en.wikipedia.org/wiki/Gauss%E2%80%93Seidel_method