[Since the OP found my comments helpful, I decided to expand them to a fuller answer.]
1. Preliminary remark
In the original post, the (unmodified) Liar Sentence was stated thus:
(L) This sentence is false.
Note the demonstrative ‘this sentence’. In turn, since mathematical languages don’t usually include demonstratives, this version of the Liar Sentence can’t easily be formalised, which may be a disadvantage. The main alternative would be to use ‘L is false’ as L, thus generating the self-reference by letting L use its own name. Yet ‘L is false’ is non-paradoxical per se, and paradoxical only if it is named ‘L’. So, does ‘L is false’ show something about truth, or about our use of names? Let’s leave that discussion and let’s go with (L) as it stands.
2. The Proposal
The solution advocated in the original post is to claim that L fails to express a proposition. Thus, the proposal is to endorse P:
(P) Sentence L does not express a proposition.
I think the rationale behind P is: Neither the claim that L is true, nor the claim that L is false, is tenable. So, we must avoid both claims. However, we don’t just want to say that L expresses a proposition that is neither true nor false; for, then the paradox can be restated as ‘This sentence is not true’. So, instead, we’ll say that L does not express a proposition at all. If it doesn’t, the question of whether it is true or false does not even arise – no more than the question of whether the Eiffel Tower is true.
The proposal faces the following problem: What shall we say about L+, below? If we extend P to this sentence and say that L+ does not express a proposition, either, then it looks as though L+ is true: after all, what it says is the case. Yet if L+ is true, then it does not express a true proposition, in which case it can’t be true. Finally, if L+ is false, it does express a true proposition, in which case it is true again.
(L+) This sentence does not express a true proposition.
In the original post, this problem is answered by holding that L+ is never true. To motivate this, note that e.g. the Eiffel Tower is never true, either – simply because the Eiffel Tower isn’t the kind of thing that can be true (or false). Likewise, L+ also isn’t the kind of thing that can be true or false – because it does not express a proposition. Thus, even under the assumption that L+ does not express a proposition, L+ is not true, contrary to the first step in the argument.
As the proposal stands, it is not very convincing because (a) there is a proposition that L+ seems to express, and (b) we have a reason for thinking that it does express this or some other proposition. Let’s start with (a), by noting that OP wants to endorse P+, which entails Q+.
(P+) Sentence L+ does not express a proposition.
(Q+) Sentence L+ does not express a true proposition.
Presumably, OP thinks that Q+ expresses a proposition, viz. the proposition that L+ does not express a true proposition. Let’s speak of PROP to mean that proposition. So, what reason is there for thinking that L+ doesn’t also express PROP? On the face of it, L+ is the subject of both Q+ and L+, and both claim of their subject that it does not express a true proposition. So, aren’t they saying the same thing? Don’t both express PROP? If not, what’s the difference?
Suppose I point at L+ and say: ‘OP believes that this sentence does not express a true proposition’. That seems like a true belief report, and it seems to express that the belief-relation holds between OP and PROP. Yet for that to happen, my use of L+ = ‘this sentence does not express a true proposition’ somehow singles out PROP. If so, why can’t those words express PROP when they occur on their own, viz. as L+? (Here, the preliminary remark, and the nature of demonstratives, may become relevant.)
The upshot is that we need to be told some story about why L+ does not express PROP. A Tarskian / Contextualist may have such a story; but we can’t just claim that L+ does not express a proposition and consider the Liar Paradox solved. Further, whatever story we do tell, it needs to say something about the Principle of Compositionality.
(PoC) For all complex expressions e, the meaning of e is determined by the meanings of e’s constituents, together with e syntactic structure.
Given that the constituents of L+ are meaningful, and given that L+ is syntactically non-defective, PoC entails that L+ is meaningful. That’s not quite the same as expressing a proposition, but it’s close enough to make trouble. In particular, if the constituents of Q+ compose to express PROP, why don’t the constituents of L+? Individually, all the constituents seem to have the right semantic values.
4. The ad hoc concern
As I said, we need a reason for denying that L+ expresses a proposition. The OP’s suggestion was that the paradox itself provides such a reason: L+ couldn’t express a proposition; because if it did, there would be a paradox. To support this, OP points out that Naïve Comprehension [NC] was rejected because it led to a paradox (viz. Russell’s). And that was the only reason for rejecting it (according to OP). So why isn’t it a good-enough reason to reject that L+ expresses a proposition?
One answer, I think, is that Russell’s Paradox directly challenges NC. NC says: ‘For every F, there’s a set of all Fs’, and the paradox then asks: ‘What about F = does not contain itself as element?’ Since NC can’t answer this question, it looks like NC is directly responsible for our troubles. (Though Dummett argued otherwise?) By contrast, there is no one principle that generates the Liar Paradox, where we’d say: ‘Yeah, that’s the culprit!’ The Liar Paradox has a number of ingredients, so that it really would be ad hoc to just pick one and discard it.