Is it OK to create a new SSL certificate before the old one expires?
Yes. There is nothing to technically prevent you from doing this. And if you are large company, then you may want to do generally do this as an insurance against CA-failure. If for example your CA of choice is hacked and suddenly revokes all its certificates, then you can just deploy the other certificate (from another large CA) that you have lying around for just such an unlikely event. (For example if you are FaceBook, you may want something like this.)
So, is it okay if I would now renew a certificate that is still valid for half a year or so?
If you want to warn people not to use this certificate anymore, then you should pay for revocation.
Expiration is the implicit "Don't use this anymore"-rule. Revocation is the explicit "Don't use this anymore"-rule.
Example: If your server was hacked, then you should consider your certificate's private key stolen. Then anybody who afterwards still encounters the compromised certificate in the wild should be warned.
Otherwise (if you can also vouch for the safety of your offline archival) then you can just let the certificate expire.
UI override for expired. But not for revoked.
Expired certificate errors are displayed differently in browsers. For example Google Chrome will currently allow the user to manually override an expired certificate warning. But it will NOT allow override for an explicitly revoked certificate.