Depois de experimentar um pouco mais, encontrei a resposta.
A palavra "SEM ASSINATURA" deve vir depois de "TINYINT" em vez de antes dele. O campo deve ser definido da seguinte forma:
@Size(max = 3)
@Column(name = "WorkingHours", columnDefinition="TINYINT(3) UNSIGNED default '40'")
private Integer workingHours;
Não sei por que isso acontece, descobri isso apenas por tentativa e erro. Talvez alguém possa fornecer uma referência para o motivo disso.