Machine learning classification with time-domain signals how to ignore signal arrival time?
A common approach is what you suggest in 1. - apply time-shift as a Data Augmentation strategy. The augmentation is generally beneficial with deep learning models, and GPUs are fast so the compute time is rarely a big problem.
Another strategy, less common, would be to make sure that the event is always located at the same position inside the analysis window during training. At prediction time one uses a high degree of overlap between analysis windows, to ensure that the model has a good chance of seeing the signal in the correct position.
If you have high quality labels, aligned time-stamps for each event, this is rather straight forward.
A third approach would be to use a combination of a detector model and a classification model. The detector job is to take the input signal stream, and detect the presence of a possible event - then possible events are passed to the classifier. A well designed detector would have a rather predictable trigger time, so the classifier does not have to be time-shift invariant. This is easy enough for signals that have a very clear event vs not-event signatures, but hard for more complex signals or low SNR conditions.