Here's the approach I took:
- Estimate\find the chirp rate in the data.
- stretch (actually compress) the data to "unchirp" it so it becomes periodic.
- Use AR Burg.
- Undo the stretch based on the chirp rate estimate found in (1)
EDIT: here's some sample code that implements the idea:
dt=0.01;
t = 0:dt:30; % the time vector sampled
t2 = 0:dt:40; % the full time vector to compare the extrap.
s = @(t) sin(0.5*t)+sin(t+0.05*t.^2); % fake data from the question
% 1. find "chirp rate" by finding peaks and fitting a chirp model
[pks locs]=findpeaks(s(t),t);
ModelEqn = 'a*sqrt(x)+b'; % model to fit linear chirp
init_params = [locs(1) 0]'; % for a,b,c of model
f = fit([1:numel(locs)]',locs(:),ModelEqn,'Start', init_params);
% 2. unchirp (compress) the data to have uniform spaced peaks
ts=((t-f.b)./f.a).^2;
ti=linspace(ts(1),ts(end),numel(t));
s_unchirped=interp1(ts,s(t),ti,'spline');
% 3. extrapolate compressed data via AR Burg
dti=mean(diff(ti));
ti2=ti(1):dti:(ti(1)+2numel(t)dti); % unchirped time to extrap.
N= round(0.75numel(t));
a = arburg(s_unchirped, N);
s_extrap = zeros(1, numel(ti2));
s_extrap(1:N) = s_unchirped(1:N); % fill in the known part of the time series
for n=(N+1):numel(ti2)
s_extrap(n) = -sum(a(2:end) . s_extrap((n-1):-1:(n-N)));
end
% 4. undo compression on s_extrap to transfom back
tiu2=f.a*sqrt(ti2)+f.b;
s_extrap_unchirped=interp1(tiu2,s_extrap,t2,'spline');
% plot
figure('Position',[100,100,1500,500])
subplot(1,3,1)
plot(t2,s(t2),t(1:N),s(t(1:N)));
legend('Signal ground truth ','Signal to be used for extrap','Location','northoutside')
subplot(1,3,2)
plot(ti, s_unchirped); hold on ; plot(ti2,s_extrap,'r:');
legend('Signal unchirped','Signal unchirped extrap','Location','northoutside')
subplot(1,3,3)
plot(t2,s(t2));hold on; plot(t2,s_extrap_unchirped)
legend('Signal','Signal extrap.','Location','northoutside')

Some thoughts:
instead of the linear chirp model used, one can try a more general nonlinear model, for example, a*x.^b+c, and inverse the transform accordingly.
AR burg has its limitations here, not sure that is the best way to go with extrapolation of the periodic (unchirped) data, as it needs to sample "enough".