I don't see much evidence that the variance increases with the mean, nor that the error distribution is non-normal. You might be reading too much into chance variation. The principal message of the diagnostic plots is to highlight point 1 as being especially interesting: it's pretty far from all the other points. However, falling in the middle of the explanatory values, it has no leverage and so you don't need to worry about it unless your objective is to obtain an accurate estimate of the error variance.
A good way to check is to simulate similar datasets and study the variations among the diagnostic plots. That's a bit of an effort but IMHO really pays off.
Among the many ways to create a simulation, parametric and nonparametric bootstrapping are appealing. Both of them add random terms to the fitted values to create new datasets. The parametric method generates iid Normal residuals of the size expected from the residual standard deviation of the fit. The nonparametric method samples (with replacement) from the original residuals. The parametric method gives you a sense of what results look like when variations are generated from a Normal distribution. The nonparametric method gives you a sense of what results look like when the variations come from the distribution of residuals you observed: this can give you a sense of whether non-normality of those residuals may be affecting your interpretation.
Here, for instance, are Normal QQ plots for 23 bootstrapped datasets using the parametric method. For comparison, the QQ plot for the original data appears at the upper left in red.
Let's examine the QQ plots, for instance.

The deviation from the diagonal line at the lower left in the original data may have caught your attention, as it should. The question is whether to assume it's something you should treat as an inherent property of the process or population you are studying, or whether to treat it as "random variation." Comparing this deviation to deviations apparent in other plots (as in the top (first) row, fourth column from the left, or in several along the bottom row) suggests random variation would be the better judgment.
You may perform similar simulation-based analyses to see whether you agree with my initial conclusions.
This R
program generates comparable tableaux of diagnostic plots (and scatterplots, corresponding to a plot.type
of 0) for any x,y data frame, using either parametric or nonparametric bootstrapping, and thus may be generally useful.
fit <- lm(y ~ x, df)
df$r <- residuals(fit)
df$y.hat <- predict(fit)
df$y.boot <- df$y
sigma <- summary(fit)$sigma
boot.type <- c("Parametric", "Nonparametric")[2]
plot.type <- 2 # Usual plots are 1 (Res vs. fit), 2 (Q-Q), 3 (Scale-Loc), 5 (Res vs Leverage)
n.iter <- 24
ncol <- floor(sqrt(n.iter * 2/(-1+sqrt(5))))
nrow <- ceiling(n.iter/ncol)
par(mfcol=c(nrow, ncol))
set.seed(17)
for (i in 1:n.iter) {
if (i != 1) {
if(boot.type == "Parametric") {
df$y.boot <- df$y.hat + rnorm(nrow(df), 0, sigma)
} else {
df$y.boot <- df$y.hat + sample(df$r, nrow(df), replace=TRUE)
}
}
fit.boot <- lm(y.boot ~ x, df)
if(plot.type==0) {
with(df, plot(x,y.boot, main=paste(boot.type, "Sample", i)))
abline(fit.boot)
} else {
plot(fit.boot, which=plot.type, col=(i==1)+1)
}
}
par(mfcol=c(1,1))